单个记录器的每个追加器的日志级别

2022-08-31 20:19:24

是否可以基于追加器为单个记录器配置不同的日志级别?

我意识到这与这个问题类似,这是我自己已经得到的,但问题是阈值适用于记录到该追加器的所有记录器,而我只希望阈值应用于单个记录器。

即到目前为止,我有这样的东西:

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消息发送到日志文件追加器,但我也希望mylogger INFO消息发送到stdout追加器(但对于所有其他记录器,只有WARN ings)。使用阈值将标准输出限制为 WARN 会限制 mylogger 的输出。


答案 1

啊哈,我通过改变来修复它

log4j.appender.stdout.Threshold=WARN

log4j.appender.stdout.Threshold=INFO

第一轮应该更小心。


答案 2

推荐