log4j - 如何限制appender的包/类的日志

时间:2013-07-24 16:53:54

标签: java logging log4j htmlunit appender

我正在使用log4j.properties,我有一个名为RDev的appender。

我想将RDev appender的级别设置为DEBUG,除了特定的包(在我的情况下为HTMLUnit)

我当前的log4j.properties是这样的:

log4j.rootLogger=debug RDev, test

log4j.appender.RDev=org.apache.log4j.RollingFileAppender
log4j.appender.RDev.File=D:/logs

log4j.appender.RDev.MaxFileSize=5mb
log4j.appender.RDev.MaxBackupIndex=10

log4j.appender.RDev.layout=org.apache.log4j.PatternLayout
log4j.appender.RDev.layout.ConversionPattern=[%5p %d{MMM/dd HH:mm:ss}] [%t] (%F:%L) - %m%n

我希望过滤/删除这些包的DEBUG日志:

com.gargoylesoftware.htmlunit
org.apache.commons.httpclient
org.apache.http.impl.conn

* UPDATE * 我尝试了这个,它适用于所有附录:

# Set specific logger levels.
log4j.logger.org.mortbay.log=fatal
log4j.logger.org.apache.http=fatal
log4j.logger.org.apache.http.headers=fatal
log4j.logger.org.apache.http.wire=fatal

(来自https://code.google.com/p/spidey/wiki/HtmlUnitErrors

现在的问题是如何将这个配置限制在一个附件? (不是所有的人) (例如,我想在文件中看到调试,而不是控制台。)

1 个答案:

答案 0 :(得分:1)

您是否仍希望查看这些包的DEBUG以上级别的日志行?如果是这样,来自Apache的this log4j tutorial描述了一种方法;看起来有点超过一半,在文本中写着“假设我们不再有兴趣看到属于com.foo包的任何组件的输出。”