所以我遇到一个问题,当我将根记录器切换到DEBUG时,log4j似乎想要记录所有可以“调试”的内容。
这是我的档案:
log4j.rootLogger=DEBUG, READER
log4j.appender.READER=org.apache.log4j.ConsoleAppender
log4j.appender.READER.layout=org.apache.log4j.PatternLayout
log4j.appender.READER.layout.ConversionPattern=[%-5p] %t->%c{1} - %m%n
com.myclass.readers=DEBUG, READER
现在我想要的是 我要在打印的读者类下定义的调试语句。我遇到的问题是,我在我的阅读器类中使用的Apache HTTP包看起来也开始转储其调试内容。
如何将此限制仅限于班级中的内容?我在网上看了看,我不确定我是否只是完全错过了一些东西,但我似乎无法解决这个问题。
谢谢!
答案 0 :(得分:5)
您似乎已将rootLogger设置为DEBUG级别:
log4j.rootLogger=DEBUG
如果没有单独指定,所有记录器都将继承rootLogger的级别。
因此,将rootLogger的级别设置为ERROR或WARN,然后只有com.myclass.readers
处于DEBUG级别。
log4j.rootLogger=ERROR, READER
答案 1 :(得分:2)
根记录器应设置为ERROR,仅将DEBUG设置为您感兴趣的类的记录器。
答案 2 :(得分:0)
默认情况下,root logger会将子记录器的所有日志打印到其日志记录级别。如果您不想打印子记录器的日志记录,请将该记录器的additivity属性设置为false。例子 -
<logger name="foo" additivity="false">
<appender_ref ref="A2" />
</logger>