2

TRACE メッセージを LogFile に記録し、INFO メッセージを stdout に記録したいと考えています。また、特定のロガー「SomeLogger」を DEBUG に限定したいと考えています。

私の 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) LogFile 内のトレース メッセージ...

(1.2) ... SomeLogger を制限して LogFile 内のメッセージをデバッグし、

(2) コンソールへの情報メッセージ。

于 2013-01-15T15:16:17.040 に答える