2014-10-31 2 views
0

Я пытаюсь разработать команду CLI, которая возвращает список сотрудников из базы данных сервера, используя остаток. Я использовал метод restTemplate.getObject() для получения списка. Это прекрасно работает, но в консоли, я получаю журналы отладки какКак отключить или маршрутизировать журналы отладки при использовании restTemplate

3:06:58.564 [main] DEBUG o.s.web.client.RestTemplate - Setting request Accept header to  [application/xml, text/xml, application/*+xml, application/json] 
13:06:58.989 [main] DEBUG o.s.web.client.RestTemplate - GET request for "https://ip:8080/service/employee/list" resulted in 200 (OK)   

Я не хочу, чтобы эти отладочные сообщения в моей консоли. Как отключить их? Также можно рассмотреть маршрутизацию этих сообщений в другой файл журнала.

ответ

0

Похоже, вы используете Logback. Он настраивается с возможностью регистрации только определенного уровня сообщений (только предупреждения или только ошибки) и возможность входа в консоль (по умолчанию, в файл, ...). Вы должны прочитать logback manual, но вот некоторые подсказки

Logback считывает свою конфигурацию из файла logback.xml в корне классов

Если вы хотите, чтобы остановить вырубку Debug Messages (следующий уровень информация, то предупреждает, ошибка и выкл)

<configuration debug="true"> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
    <!-- encoders are by default assigned the type 
     ch.qos.logback.classic.encoder.PatternLayoutEncoder --> 
    <encoder> 
     <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
    </encoder> 
    </appender> 

    <root level="info"> 
    <appender-ref ref="STDOUT" /> 
    </root> 
</configuration> 

Если вы хотите, чтобы войти в файл:

<configuration> 

    <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
    <file>testFile.log</file> 
    <append>true</append> 
    <!-- encoders are assigned the type 
     ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> 
    <encoder> 
     <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
    </encoder> 
    </appender> 

    <root level="DEBUG"> 
    <appender-ref ref="FILE" /> 
    </root> 
</configuration> 
+0

Я пробовал оба этих варианта, но это работа. Еще одно дополнение к моему вопросу заключается в том, что у меня есть некоторые ошибки в журналах сервера, связанные с журналом. 2014-09-26 10: 04: 16,739 ОШИБКА [Thread-2] STDERR (AbstractLoggingWriter.java:71) - SLF4J: путь класса содержит несколько привязок SLF4J. Имеет ли это какое-либо отношение к журналам, входящим в консоль, даже после изменения файла logback.xml? – JavaWorld

+0

Я не знаю, связано ли это, но вы должны принять решение о своей системе регистрации (slf4j + logback - отличный выбор, но, как любой другой выбор, он должен быть правильно настроен) и исправить эту ошибку до настройки уровня журнала. Кстати, где вы положили 'logback.xml'? –

+0

Я сохранил logback.xml в папке src/main/resources. Я вижу, что файл testFile.log создан, но внутри нет содержимого. Журналы все еще приходят в консоль. – JavaWorld

0

Ява на основе конфигурации instea d xml работал для меня.

FileAppender<ILoggingEvent> myAppender = new FileAppender<ILoggingEvent>(); 
LoggerContext loggerContext=(LoggerContext)LoggerFactory.getILoggerFactory(); 
loggerContext.reset(); 

PatternLayoutEncoder layout=new PatternLayoutEncoder(); 
layout.setContext(loggerContext); 
layout.setPattern("%X{first} %X{last} - %m%n"); 
layout.start(); 
myAppender.setAppend(true); 
    myAppender.setFile("logs/testFile1.log"); 
    myAppender.setName("File1"); 
    myAppender.setEncoder(layout); 
    myAppender.setContext(loggerContext); 
    myAppender.start(); 
    ch.qos.logback.classic.Logger logbackLogger = loggerContext.getLogger("Main"); 
    logbackLogger.addAppender(myAppender); 
    logbackLogger.setLevel(Level.DEBUG); 
    logbackLogger.setAdditive(true); 
Смежные вопросы