为什么logger.file.level
在此设置中影响rootLogger.level
( log4j2.properties )?
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
更改为 all 后,控制台包含所有消息以及文件。
答案 0 :(得分:2)
这不是错误。它以这种方式实现,以匹配其前身Log4j 1和Logback的行为。仅对第一个LoggerConfig检查Logger上指定的Level属性。如果它通过了那么它将被传递给所有父LoggerConfigs,直到它被过滤器拒绝或者具有additivity =" false"在父母身上指定。