2

我想将 TRACE 消息记录到 LogFile 并将 INFO 消息记录到 stdout。我还想将特定记录器“SomeLogger”限制为调试。

我的 log4cplus.properties 文件如下,但我没有将 SomeLogger 消息发送到标准输出。关于如何解决这个问题的任何建议?

### 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
4

2 回答 2

2

配置中的行log4cplus.additivity.SomeLogger=false意味着登录到的任何内容SomeLogger都不会在层次结构中进一步向上传播,即rootLogger.

于 2012-11-22T13:17:32.937 回答
1

我现在有机会重新审视这个问题,并看到解决方案是更换

log4cplus.logger.SomeLogger=DEBUG, LogFile

log4cplus.logger.SomeLogger=DEBUG, LogFile, stdout

这条线连同

log4cplus.rootLogger=TRACE, LogFile, stdout
log4cplus.appender.stdout.Threshold=INFO

现在会给我:

(1.1) 日志文件中的跟踪消息...

(1.2) ...同时限制 SomeLogger 调试日志文件中的消息,并且

(2) 向控制台发送信息消息。

于 2013-01-15T15:16:17.040 回答