Log4j 2. How get log4j's debug messages?

Update January 2018:

From Log4j 2.10, this is easy: just run your program with system property log4j2.debug (no value needed; an empty string is fine).


The current (log4j-2.1) documentation on the status logger is a bit confusing. Basically:

  • Until a configuration is found, status logger level can be controlled with system property org.apache.logging.log4j.simplelog.StatusLogger.level.
  • After a configuration is found, status logger level can be controlled in the configuration file with the "status" attribute, for example: <Configuration status="trace">.

UPDATE: the documentation was improved in log4j-2.2.


It can be confusing, the nearest equivilent of the Log4J 1.x command line argument -Dlog4j.debug is -Dorg.apache.logging.log4j.simplelog.StatusLogger.level=trace which sets the Log4J 2.x "status logger" level to trace and provides detailed output about the logging configuration.

Log4J 1.x allows you to manually specify the location of the configuration file on the command line using -Dlog4j.configuration=file:///var/lib/tomcat7/log4j.xml where the configuration file is located at /var/lib/tomcat7/log4j.xml. In Log4J 2.x there is a subtle difference in the argument -Dlog4j.configurationFile=file:///var/lib/tomcat7/log4j.xml, 'configurationFile' rather than 'configuration'.

Obviously you need to ensure that your configuration file is suitible for the version of Log4J being used, the XML structure differs between 1.x and 2.x.