Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does “status” mean in Log4j2 configuration?

I just have finished adjustment of log4j2.xml configuration file and spotted something I don't really understand. So what is <Configuration status="SOME_STATUS_HERE">?

Almost in all examples here : http://logging.apache.org/log4j/2.x/manual/configuration.html folks from Apache added status to configuration.

For example here is the first one:

<?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <!--status="WARN" - what is this???-->     <Appenders>   <Console name="Console" target="SYSTEM_OUT">    <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>   </Console>  </Appenders>   <Loggers>   <Root level="error">    <AppenderRef ref="Console"/>   </Root>  </Loggers>  </Configuration> 
like image 960
Yurii Bondarenko Avatar asked Jan 11 '14 18:01

Yurii Bondarenko


Video Answer


1 Answers

The status logger is used internally by log4j2 components. Setting status="debug" (or "trace") in the configuration will cause this internal logging to be output to the command line.

It will print debug information about which log4j2 plugin components are loaded (all configuration elements map to log4j2 plugins), and more details like for example what appenders and loggers were found, what parameters they have and how they are combined.

This is useful for troubleshooting configuration issues.

From Log4j 2.9, you can use system property log4j2.debug (no value required) to turn on internal Log4j2 status logging even before the configuration file is loaded. Prior to version 2.9, the same can be achieved with system property -Dorg.apache.logging.log4j.simplelog.StatusLogger.level=TRACE.

like image 74
Remko Popma Avatar answered Sep 23 '22 02:09

Remko Popma