2014-10-31 545 views
0

我正在嘗試開發一個CLI命令,它使用rest從服務器數據庫返回一列員工列表。我使用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在類路徑

的根。如果你想停止調試消息記錄讀取它的配置(下一層是信息,然後警告,錯誤和關閉)

<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

我試過這兩個變種,但它的功效。另外我的問題是我的服務器日誌中有一些與logback相關的錯誤。 2014-09-26 10:04:16,739錯誤[線程2] STDERR(AbstractLoggingWriter.java:71) - SLF4J:類路徑包含多個SLF4J綁定。 即使在更改logback.xml文件後,它是否與控制檯中的日誌有任何關係? – JavaWorld 2014-11-02 05:10:46

+0

我不知道它是否相關,但是您應該對您的日誌記錄系統做出決定(slf4j + logback是一個很好的選擇,但是必須正確配置其他選項),並在調整日誌級別之前修復此錯誤。順便說一句,你把'logback.xml'放在哪裏? – 2014-11-02 09:46:39

+0

我已將logback.xml保存在src/main/resources文件夾中。我可以看到文件testFile.log已經創建,但裏面沒有內容。日誌仍然在控制檯中。 – JavaWorld 2014-11-03 05:38:35

0

基於Java的配置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);