以下是我想要做的事情:我想要2个日志文件:第一个日志INFO级别和应用程序的所有部分,同时还记录DEBUG和一些软件包。第二个只记录错误和所有包。我相信这可能是微不足道的,但我无法弄清楚。这里是我目前使用的配置文件:在使用类别时在log4j中配置多个日志文件
log4j.rootLogger=INFO,console,R
#console appender
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = %t %-5p %c{2} - %m%n
#file appender
log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.DatePattern = '.'yyyy-MM-dd
log4j.appender.R.File = log/log.txt
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern = [%d{ISO8601}]%5p%6.6r[%t]%x(%F:%L) - %m%n
#Specific log levels
log4j.category.com.mypackage1=DEBUG
log4j.category.com.mypackage2=DEBUG
显然没有错误日志部分。我的基本想法是添加另一个appender,并将其日志级别设置为ERROR,但类别似乎覆盖它和他们的信息,这不是我想要的。他们之所以这样做,是因为其他软件包转储了大量我们在调试时不需要的信息,这就是我们如何解决这个问题。我在想这可能是一个更好的整体方法,但这是我的第一个log4j配置文件。
更新:一名同事建议使用2个伐木工人,因为在他的评论(Different log4j layout for debug and error?)中kdgregory链接到的帖子中提到。那里的人们似乎认为这是一个坏主意,但没有人解释过为什么。它看起来有点冒险,但它做我们需要的。不使用该方法的主要原因是什么(除了需要维护2个不同的记录器)?
这个问题可能会帮助你(不确定它是否符合“完全重复”的条件):http://stackoverflow.com/questions/1008122/different-log4j-layout-for-debug-and-error – kdgregory 2010-01-12 17:01:59