i have a configuration for log4j2 as a property file which looks like this:
log4j2.properties
property.pattern = %d [%t] %F %-5L %-5p %c - %m%n
appender.0.type = Console
appender.0.name = ALL_LOG_CONSOLE
appender.0.layout.type = PatternLayout
appender.0.layout.pattern = ${pattern}
appender.1.type = File
appender.1.name = ALL_LOG_FILE
appender.1.fileName = logs/all.log
appender.1.layout.type = PatternLayout
appender.1.layout.pattern = ${pattern}
appender.2.type = File
appender.2.name = OFF_LOG_FILE
appender.2.fileName = logs/off.log
appender.2.layout.type = PatternLayout
appender.2.layout.pattern = ${pattern}
appender.3.type = File
appender.3.name = FATAL_LOG_FILE
appender.3.fileName = logs/fatal.log
appender.3.layout.type = PatternLayout
appender.3.layout.pattern = ${pattern}
appender.4.type = File
appender.4.name = ERROR_LOG_FILE
appender.4.fileName = logs/error.log
appender.4.layout.type = PatternLayout
appender.4.layout.pattern = ${pattern}
appender.5.type = File
appender.5.name = WARN_LOG_FILE
appender.5.fileName = logs/warn.log
appender.5.layout.type = PatternLayout
appender.5.layout.pattern = ${pattern}
appender.6.type = File
appender.6.name = INFO_LOG_FILE
appender.6.fileName = logs/info.log
appender.6.layout.type = PatternLayout
appender.6.layout.pattern = ${pattern}
appender.7.type = File
appender.7.name = DEBUG_LOG_FILE
appender.7.fileName = logs/debug.log
appender.7.layout.type = PatternLayout
appender.7.layout.pattern = ${pattern}
appender.8.type = File
appender.8.name = TRACE_LOG_FILE
appender.8.fileName = logs/trace.log
appender.8.layout.type = PatternLayout
appender.8.layout.pattern = ${pattern}
logger.0.name = de.hoelzer.all.log.console
logger.0.level = ALL
logger.0.appenderRef.0.ref = ALL_LOG_CONSOLE
logger.0.appenderRef.0.level = ALL
logger.1.name = de.hoelzer.all.log.file
logger.1.level = ALL
logger.1.appenderRef.0.ref = ALL_LOG_CONSOLE
logger.1.appenderRef.0.level = ALL
logger.2.name = de.hoelzer.off.log.file
logger.2.level = OFF
logger.2.appenderRef.0.ref = OFF_LOG_FILE
logger.2.appenderRef.0.level = OFF
logger.3.name = de.hoelzer.fatal.log.file
logger.3.level = FATAL
logger.3.appenderRef.0.ref = FATAL_LOG_FILE
logger.3.appenderRef.0.level = FATAL
logger.4.name = de.hoelzer.error.log.file
logger.4.level = ERROR
logger.4.appenderRef.0.ref = ERROR_LOG_FILE
logger.4.appenderRef.0.level = ERROR
logger.5.name = de.hoelzer.warn.log.file
logger.5.level = WARN
logger.5.appenderRef.0.ref = WARN_LOG_FILE
logger.5.appenderRef.0.level = WARN
logger.6.name = de.hoelzer.info.log.file
logger.6.level = INFO
logger.6.appenderRef.0.ref = INFO_LOG_FILE
logger.6.appenderRef.0.level = INFO
logger.7.name = de.hoelzer.debug.log.file
logger.7.level = DEBUG
logger.7.appenderRef.0.ref = DEBUG_LOG_FILE
logger.7.appenderRef.0.level = DEBUG
logger.8.name = de.hoelzer.trace.log.file
logger.8.level = TRACE
logger.8.appenderRef.0.ref = TRACE_LOG_FILE
logger.8.appenderRef.0.level = TRACE
rootLogger.level = ALL
rootLogger.appenderRef.0.ref = ALL_LOG_CONSOLE
rootLogger.appenderRef.0.level = ALL
rootLogger.appenderRef.1.ref = ALL_LOG_FILE
rootLogger.appenderRef.1.level = ALL
rootLogger.appenderRef.2.ref = OFF_LOG_FILE
rootLogger.appenderRef.2.level = OFF
rootLogger.appenderRef.3.ref = FATAL_LOG_FILE
rootLogger.appenderRef.3.level = FATAL
rootLogger.appenderRef.4.ref = ERROR_LOG_FILE
rootLogger.appenderRef.4.level = ERROR
rootLogger.appenderRef.5.ref = WARN_LOG_FILE
rootLogger.appenderRef.5.level = WARN
rootLogger.appenderRef.6.ref = INFO_LOG_FILE
rootLogger.appenderRef.6.level = INFO
rootLogger.appenderRef.7.ref = DEBUG_LOG_FILE
rootLogger.appenderRef.7.level = DEBUG
rootLogger.appenderRef.8.ref = TRACE_LOG_FILE
rootLogger.appenderRef.8.level = TRACE
Running with this configuration i get all logfiles created in the directory log/.
all.log contains all level messages.
debug.log contains INFO level messages even if no debug calls was made to log.
error.log, fatal.log, off.log and warn.log are empty.
info.log contains only INFO level messages but the format is off a bit.
trace.log contians INFO and TRACE level messages.
Question is why trace.log and debug.log contains INFO messages?