我想将TRACE消息记录到LogFile和INFO消息到stdout。我还想将特定记录器“SomeLogger”限制为DEBUG。
我的log4cplus.properties文件如下所示,但我没有将someLogger消息发送到stdout。有关如何解决此问题的任何建议吗?
### log4cplus.properties
# root logger
log4cplus.rootLogger=TRACE, LogFile, stdout
# specific logger
log4cplus.logger.SomeLogger=DEBUG, LogFile
log4cplus.additivity.SomeLogger=false
# appender that automatically rolls files
log4cplus.appender.LogFile=log4cplus::RollingFileAppender
log4cplus.appender.LogFile.File=/home/ken/logs/log4cplus.log
log4cplus.appender.LogFile.Append=true
log4cplus.appender.LogFile.MaxBackupIndex=9
log4cplus.appender.LogFile.MaxFileSize=50MB
log4cplus.appender.LogFile.layout=log4cplus::PatternLayout
log4cplus.appender.LogFile.layout.ConversionPattern=%D{%H:%M:%S %Q} %-4r %-5p T%T |%c{2}| %M.%L %x - %m %n
# Direct log messages to stdout
log4cplus.appender.stdout=log4cplus::ConsoleAppender
log4cplus.appender.stdout.Target=System.out
log4cplus.appender.stdout.Threshold=INFO
log4cplus.appender.stdout.layout=log4cplus::PatternLayout
log4cplus.appender.stdout.layout.ConversionPattern=%D{%H:%M:%S.%q} %-5p %m%n
答案 0 :(得分:1)
配置中的行log4cplus.additivity.SomeLogger=false
表示登录到SomeLogger
的任何内容都不会在层次结构中向上传播,即rootLogger
。
答案 1 :(得分:1)
我现在有机会重新审视这个问题并看到解决方案是替换
log4cplus.logger.SomeLogger=DEBUG, LogFile
与
log4cplus.logger.SomeLogger=DEBUG, LogFile, stdout
此行与
一起log4cplus.rootLogger=TRACE, LogFile, stdout
log4cplus.appender.stdout.Threshold=INFO
现在会给我:
(1.1)跟踪LogFile中的消息...
(1.2)...同时限制SomeLogger调试LogFile中的消息,以及
(2)向控制台发送信息。