Is there any way to specify Log4J 2.x log4j2.xml
file location manually (like DOMConfigurator
in Log4J 1.x), without messing with classpath and system properties?
You could use the static method #initialize(String contextName, ClassLoader loader, String configLocation)
(see source here) in org.apache.logging.log4j.core.config.Configurator
.
(You can pass null for the class loader.)
Be aware that this class is not part of the public API so your code may break with any minor release.
For completeness, you can also specify the location of the configuration file with this system property:
-Dlog4j.configurationFile=path/to/log4j2.xml