明确设置apache HttpClient日志级别
问题描述:
我正在开发一个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)的依赖
答
尝试增加以下三行到你的log4j.properties
文件:
log4j.logger.org.apache.http=WARN
log4j.logger.org.apache.http.headers=WARN
log4j.logger.org.apache.http.wire=WARN