我的代码中的每个类中都有两个 log4j 记录器:
logA = Logger.getLogger(com.some.class.in.my.project);
logB = Logger.getLogger('perf');
我希望这两个记录器将数据输出到两个完全不同的文件中。我似乎无法让它工作。
这是我的 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 可以解决此问题,但我已经尝试过了,但影响不大。