Log4j2:记录影响控制台级别的文件级别

时间:2016-11-11 21:40:52

标签: logging log4j2

为什么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 后,控制台包含所有消息以及文件。

1 个答案:

答案 0 :(得分:2)

这不是错误。它以这种方式实现,以匹配其前身Log4j 1和Logback的行为。仅对第一个LoggerConfig检查Logger上指定的Level属性。如果它通过了那么它将被传递给所有父LoggerConfigs,直到它被过滤器拒绝或者具有additivity =" false"在父母身上指定。