【发布时间】:2013-01-22 13:11:19
【问题描述】:
我想用 log4j 登录 httpclient。 为此,我添加了一个文件 commons-logging.properties,其内容为 org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger。 然后我添加了一个文件 log4j.properties,其中包含 httpclient 文档提供的以下内容作为日志记录示例:
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n
log4j.logger.org.apache.http=DEBUG
log4j.logger.org.apache.http.wire=ERROR
这两个文件都位于类路径中。我放了以下参数
-Dlog4j.configuration=log4j.properties
-Dlog4j.debug
但是,当我运行使用 httpclient 执行 http 请求的程序时,我看不到任何日志记录输出。从这个意义上说,后一个参数应该使 log4j 的输出变得冗长,它显示了几件事,例如使用的属性文件。这根本不显示。 我也尝试过以编程方式读出记录器
Logger.getLogger("log4j.logger.org.apache.http.wire").getLevel().toString()
这会引发空指针异常。
另外我读了
LogManager.getCurrentLoggers().hasMoreElements()
这总是错误的。
似乎 log4j 没有为 httpclient“激活”。任何人都可以在这里帮助我,我可以做些什么来打开登录?
(是的,我已经在 stackoverflow 阅读了相关主题)
非常感谢
菲利克斯
【问题讨论】:
标签: logging log4j httpclient