我想用 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 阅读了相关主题)
非常感谢
菲利克斯