Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.8
-
None
Description
People find it difficult to troubleshoot Log4j 2 configuration issues. Many people don't know what the "status" attribute is for at the beginning of the configuration:
<Configuration status="warn"> ...
In addition, the above setting does not take effect until the configuration file is found. If users have trouble making Log4j 2 find their configuration file, the above does not help.
In such cases, users can enable internal status logging by setting system property org.apache.logging.log4j.simplelog.StatusLogger.level to TRACE.
This is problematic because:
- It is not well-known (documented in the FAQ and on the configuration page but many people don't know about this feature)
- The name is a bit... lengthy
- Apparently people don't intuitively grasp that "status logging" means the internal log4j 2 debug logging facility.
- It is confusing that there are two phases (before config file found and after), and the status logger level can be different and needs to be specified separately
I propose we add a short, intuitive system property that results in all internal Log4j 2 status logging to be printed to the console. When set, this property should even override the configuration status attribute in my opinion.
Something like -Dlog4j2.debug (without even requiring a value) would be good, but I'm open to any suggestions.