Log4J 如何分开Logger输出
今天和两个同事讨论Log4j,他们都需要解决一个问题,怎么分开输出Logger。这么讲不清楚,举个例子:
?
?
?这样会发现一个问题,myLog的输出又会在文件,又会在终端。原因在Log4J官方的Introduction讲的很清楚:
http://logging.apache.org/log4j/1.2/manual.html? 搜索Appender Additivity. 我解释一下就是默认情况下bar会集成root的输出。知道了原因,那怎么修改就简单了。
?
?唯一的区别是在bar那个logger后面加了一个 additivity="false"。我试了一下,可以按照要求工作。这是xml的配置,一般的property的配置如下:
?
log4j.rootLogger=DEBUG, FAlog4j.category.bar = INFO, CAlog4j.additivity.bar = false#Console Appenderlog4j.appender.CA=org.apache.log4j.ConsoleAppenderlog4j.appender.CA.layout=org.apache.log4j.PatternLayoutlog4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n#File Appenderlog4j.appender.FA=org.apache.log4j.FileAppenderlog4j.appender.FA.File=property.loglog4j.appender.FA.layout=org.apache.log4j.PatternLayoutlog4j.appender.FA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n??
1 楼 wertyac 2011-08-09 牛呀,我没搞过log4j,只是在搞log4cpp和log4c++,突然感觉当时xiaoyu为啥要自己写呢!!!!!!!!!!