Details
-
Documentation
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
2.4.1
-
None
-
Google App Engine
Description
This affects platforms where JMX is not available, such as Google App Engine
A JMX-related exception is logged at initialization:
2015-11-17 08:29:04,292 pool-2-thread-1 ERROR Unable to create Lookup for jvmrunargs java.lang.IllegalArgumentException: java.lang.NoClassDefFoundError: Could not initialize class org.apache.logging.log4j.core.lookup.JmxRuntimeInputArgumentsLookup
at org.apache.logging.log4j.core.util.ReflectionUtil.instantiate(ReflectionUtil.java:192)
at org.apache.logging.log4j.core.lookup.Interpolator.<init>(Interpolator.java:65)
at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:377)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:169)
at org.apache.logging.log4j.core.config.builder.impl.DefaultConfigurationBuilder.build(DefaultConfigurationBuilder.java:158)
at org.apache.logging.log4j.core.config.builder.impl.DefaultConfigurationBuilder.build(DefaultConfigurationBuilder.java:43)
...
...
See bug LOG4J2-1051, in which an app crash issue was addressed by not letting the NoClassDefFoundError propagate, but instead it's wrapped in an IllegalArgumentException and logged to the status logger.
As already mentioned in the ticket above, configuration property "log4j2.disable.jmx" is not aware of class JmxRuntimeInputArgumentsLookup, so setting "-Dlog4j2.disable.jmx=true" has no effect in preventing the exception.