web-dev-qa-db-ja.com

単一のロガーのアペンダーごとのログレベル

アペンダーに基づいて単一のロガーに異なるログレベルを設定することは可能ですか?

私はこれがこれに似ていることを理解しています question 、これは私がすでに得た限りですが、これに関する問題は、そのアペンダーに記録するすべてのロガーにしきい値が適用されることですしきい値を単一のロガーに適用したい。

すなわち、これまでのところ私はこのようなものを持っています

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

myloggerDEBUGメッセージをlogfileアペンダーに送信したいが、また、myloggerINFOメッセージをstdoutappender(ただし、他のすべてのロガーについては警告のみです)。しきい値を使用してstdoutをWARNに制限すると、myloggerの出力が制限されます。

47
Joel

あは、変更して修正しました

log4j.appender.stdout.Threshold=WARN

log4j.appender.stdout.Threshold=INFO

初回はもっと慎重にすべきだった。

47
Joel