单个Logger的每个appender的日志级别

是否可以根据appender为单个logging器configuration不同的日志级别?

我意识到这与这个问题是类似的,而且就我已经得到的这个问题而言,问题是这个阈值适用于所有logging到该appender的logging器,而我只希望阈值适用于单个logging器。

即到目前为止,我有这样的事情:

log4j.rootLogger=WARN, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Threshold=WARN log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout log4j.logger.mylogger=DEBUG,logfile log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender log4j.appender.logfile.DatePattern=${roll.pattern.daily} log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%d{${datestamp}} [%t] %-5p %C{2} - %m%n log4j.appender.logfile.File=mylogfile.log 

我想mylogger DEBUG消息发送到日志文件 appender,但我也希望mylogger INFO消息被发送到标准输出appender(但所有其他logging器只有警告)。 使用阈值将stdout限制为WARN限制了mylogger的输出。

啊哈,我修改了它

 log4j.appender.stdout.Threshold=WARN 

 log4j.appender.stdout.Threshold=INFO 

第一次应该更加小心。