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問題上提出的建議,但沒有運氣。我也看到很多其他建議幾乎相同。
- Disable HttpClient logging
- Logs are filling up with httpclient.wire.content dumps. How can I turn it off?
傳遞上執行的參數,諸如java -Dlog4j
不是我的溶液。
作爲旁註我的項目有兩個模塊,
- 的「父模塊」定義日誌屬性並具有SLF4J(1.7.5)和SLF4J-log4j12依賴性
- 子模塊中,可以我使用的的HttpClient(4.3.4),它只有在
SLF4J(1.7.5)的依賴