单个记录器的每个appender的日志级别

Joe*_*oel 49 java logging log4j

是否可以根据appender为单个Logger配置不同的日志级别?

我意识到这与这个问题类似,这是我自己已经拥有的,但问题是这个阈值适用于记录到该appender的所有记录器,而我只希望阈值适用于单一记录器.

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

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
Run Code Online (Sandbox Code Playgroud)

我希望将mylogger DEBUG消息发送到logfile appender,但我也希望将mylogger INFO消息发送到stdout appender(但是对于所有其他记录器只能发送警告).使用阈值将stdout限制为WARN会限制mylogger的输出.

Joe*_*oel 47

啊哈,我修改了它

log4j.appender.stdout.Threshold=WARN
Run Code Online (Sandbox Code Playgroud)

log4j.appender.stdout.Threshold=INFO
Run Code Online (Sandbox Code Playgroud)

第一次应该更加小心.

  • 我推荐使用XML格式,它更容易理解,IMO (10认同)