为什么log4j会记录到两个单独的文件?

时间:2015-10-21 18:27:43

标签: java logging log4j2

我有以下log4j.properties文件,默认的appender和特定类的单独的一个

log4j.rootLogger=DEBUG, STDOUT, default

log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.default=org.apache.log4j.RollingFileAppender
log4j.appender.default.File=my-log.log
log4j.appender.default.layout=org.apache.log4j.PatternLayout
log4j.appender.default.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss} %-5p %c{1}:%L - %m%n

log4j.logger.com.app.util.ReportUtil=DEBUG, report

log4j.appender.migrateReport=org.apache.log4j.RollingFileAppender
log4j.appender.migrateReport.File=logs/report.log
log4j.appender.migrateReport.layout=org.apache.log4j.PatternLayout
log4j.appender.migrateReport.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss} %-5p %c{1}:%L - %m%n

ReportUtil设置为使用此记录器

private final Logger log = LoggerFactory.getLogger(ReportUtil.class);

当我从ReportUtil登录时,它会写入两个appender - 我只希望它记录到report。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:4)

尝试将此log4j.additivity.com.app.util.ReportUtil = false添加到您的配置中。

答案 1 :(得分:0)

尝试从rootLogger中删除默认值。我相信当你在rootLogger中指定了默认值时,它将始终被调用。