【发布时间】:2021-07-08 20:21:18
【问题描述】:
让我们想象一个场景 A,其中我有 log4j.rootLogger=DEBUG 和一个具有相同日志记录级别的文件附加程序:
log4j.rootLogger=DEBUG, default.out, default.file
log4j.appender.default.file=org.apache.log4j.RollingFileAppender
log4j.appender.default.file.append=true
log4j.appender.default.file.file=log/error.log
log4j.appender.default.file.threshold=DEBUG
log4j.appender.default.file.MaxFileSize=10240KB
log4j.appender.default.file.MaxBackupIndex=100
log4j.appender.default.file.layout=org.apache.log4j.PatternLayout
log4j.appender.default.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
现在我们将与场景 B 进行比较:
log4j.rootLogger=INFO, default.out, default.file
log4j.appender.default.file=org.apache.log4j.RollingFileAppender
log4j.appender.default.file.append=true
log4j.appender.default.file.file=log/error.log
log4j.appender.default.file.threshold=INFO
log4j.appender.default.file.MaxFileSize=10240KB
log4j.appender.default.file.MaxBackupIndex=100
log4j.appender.default.file.layout=org.apache.log4j.PatternLayout
log4j.appender.default.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
我知道场景 A 会比 B 更冗长,影响我的软件性能的日志。但是现在,让我们与另一个场景 C 进行比较,其中我将 rootLogger 放入 DEBUG,但将 appender 放入 INFO:
log4j.rootLogger=DEBUG, default.out, default.file
log4j.appender.default.file=org.apache.log4j.RollingFileAppender
log4j.appender.default.file.append=true
log4j.appender.default.file.file=log/error.log
log4j.appender.default.file.threshold=INFO
log4j.appender.default.file.MaxFileSize=10240KB
log4j.appender.default.file.MaxBackupIndex=100
log4j.appender.default.file.layout=org.apache.log4j.PatternLayout
log4j.appender.default.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
我的log4j创建的文件不会写入大量来自DEBUG logger的信息,因为我设置了log4j.appender.default.file.threshold=INFO,所以只会写入INFO。但是我的 rootLogger 设置在 DEBUG 上怎么样?
log4j.rootLogger=DEBUG 会影响性能吗?场景 B 会比场景 C 更有效吗?
【问题讨论】: