2016-11-11 63 views
1

为什么logger.file.level影响rootLogger.level在此设置中(log4j2.properties)?Log4j2:影响控制台级别的日志文件级别

appender.console.type = Console 
appender.console.name = STDOUT 
appender.console.layout.type = PatternLayout 
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1}: %msg%n 

appender.file.type = File 
appender.file.name = LOGFILE 
appender.file.fileName = logs/TEMOS.log 
appender.file.layout.type=PatternLayout 
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1}: %msg%n 

loggers = file 

logger.file.name=org.company.test 
logger.file.level = info 
logger.file.append = false 
logger.file.appenderRefs = file 
logger.file.appenderRef.file.ref = LOGFILE 

rootLogger.level = all 
rootLogger.appenderRefs = stdout 
rootLogger.appenderRef.stdout.ref = STDOUT 

控制台只包含信息消息以及文件。变更后logger.file.level全部,控制台包含全部消息以及文件。

+0

您可能发现了一个错误。请在Log4j2 JIRA问题跟踪器上提出一张票。 –

+0

门票提出:https://issues.apache.org/jira/browse/LOG4J2-1702。感谢您的回应。 – David

回答

2

这不是一个错误。它以这种方式实现以匹配其前任Log4j 1和Logback的行为。记录器上指定的级别属性仅针对第一个LoggerConfig进行检查。如果它通过了,那么它将被传递给所有的父LoggerConfigs,直到它被Filter或者父类指定的additivity =“false”拒绝为止。