2015-03-31 610 views
3

我正在開發一個web應用程序,其中使用apache HttpClient進行一些httpRequest。
對於記錄我使用SLF4J與SLF4J-log4j12「插件」明確設置apache HttpClient日誌級別

我想是有DEBUG日誌級別爲我的應用程序,但WARN級別HttpClient的。我在log4j.properties中查看日誌記錄屬性。

log4j.rootLogger=DEBUG,console,file 

log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 

log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=log.log 
log4j.appender.file.threshold=DEBUG 

的初始化和記錄就是這樣

import org.slf4j.LoggerFactory; 
private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(<MY_CLASS>.class.getName()); 

LOG.debug("This is debug info"); 
LOG.warn("This is warn info"); 

到現在爲止,我設置以下爲使用類HttpClient的

System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog"); 

爲「停用」記錄,但這會完全停止日誌記錄,並且不會根據需要將級別設置爲WARN。

直到現在我已經嘗試了以下SO問題上提出的建議,但沒有運氣。我也看到很多其他建議幾乎相同。

傳遞上執行的參數,諸如java -Dlog4j不是我的溶液。

作爲旁註我的項目有兩個模塊,

  • 的「父模塊」定義日誌屬性並具有SLF4J(1.7.5)和SLF4J-log4j12依賴性
  • 子模塊中,可以我使用的的HttpClient(4.3.4),它只有在
    SLF4J(1.7.5)的依賴

回答

2

嘗試增加以下三行到你的log4j.properties文件:

log4j.logger.org.apache.http=WARN 
log4j.logger.org.apache.http.headers=WARN 
log4j.logger.org.apache.http.wire=WARN