コードの各クラスに2つのlog4jロガーがあります:
logA = Logger.getLogger(com.some.class.in.my.project);
logB = Logger.getLogger('perf');
これらの2つのロガーがデータを2つの完全に異なるファイルに出力するようにします。私はそれを機能させることができないようです。
これが私のlog4jプロパティです:
log4j.rootLogger = myAppenderA
# A
log4j.appender.myAppenderA=org.apache.log4j.RollingFileAppender
log4j.appender.myAppenderA.File=../logs/mylogfileA.log
log4j.appender.myAppenderA.additivity=false
log4j.appender.myAppenderA.Threshold=DEBUG
log4j.appender.myAppenderA.layout=org.apache.log4j.PatternLayout
log4j.appender.myAppenderA.layout.ConversionPattern=%d{ISO8601} %-5p 0 %m%n
# perf
log4j.appender.perf=org.apache.log4j.RollingFileAppender
log4j.appender.perf.File=..logs/perf.log
log4j.appender.perf.additivity=false
log4j.appender.perf.Threshold=DEBUG
log4j.appender.perf.layout=org.apache.log4j.PatternLayout
log4j.appender.perf.layout.ConversionPattern=%d{ISO8601} %-5p 0 %m%n
log4j.logger.myAppenderB = perf
myLogfileA.logとperf.logの両方に同じデータが含まれています。おそらく加法性をfalseに設定するとこれが修正されますが、私はそれを試しましたが、ほとんど影響がありません。