My app server is loading a log4j2.properties file and I can't find where it is. I'd like to know the complete path of this conf file.
I can easily make log4j2 display the searched configuration files if I start the jvm with the option -Dlog4j.debug
like answered in this question, but it does not display the complete path.
With the debug parameter I get this output:
[err] DEBUG StatusLogger Using configurationFactory org.apache.logging.log4j.core.config.ConfigurationFactory$Factory@239c2809
[err] TRACE StatusLogger Trying to find [log4j2-testago service.properties] using context class loader com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.properties] using com.ibm.ws.classloading.internal.AppClassLoader@8bc0851 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.properties] using com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.properties] using ClassLoader.getSystemResource().
[err] TRACE StatusLogger Trying to find [log4j2-testago service.yml] using context class loader com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.yml] using com.ibm.ws.classloading.internal.AppClassLoader@8bc0851 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.yml] using com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.yml] using ClassLoader.getSystemResource().
[err] TRACE StatusLogger Trying to find [log4j2-testago service.yaml] using context class loader com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.yaml] using com.ibm.ws.classloading.internal.AppClassLoader@8bc0851 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.yaml] using com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.yaml] using ClassLoader.getSystemResource().
[err] TRACE StatusLogger Trying to find [log4j2-testago service.json] using context class loader com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.json] using com.ibm.ws.classloading.internal.AppClassLoader@8bc0851 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.json] using com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.json] using ClassLoader.getSystemResource().
[err] TRACE StatusLogger Trying to find [log4j2-testago service.jsn] using context class loader com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.jsn] using com.ibm.ws.classloading.internal.AppClassLoader@8bc0851 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.jsn] using com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.jsn] using ClassLoader.getSystemResource().
[err] TRACE StatusLogger Trying to find [log4j2-testago service.xml] using context class loader com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.xml] using com.ibm.ws.classloading.internal.AppClassLoader@8bc0851 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.xml] using com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-testago service.xml] using ClassLoader.getSystemResource().
[err] TRACE StatusLogger Trying to find [log4j2-test.properties] using context class loader com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414.
[err] TRACE StatusLogger Trying to find [log4j2-test.properties] using com.ibm.ws.classloading.internal.AppClassLoader@8bc0851 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-test.properties] using com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-test.properties] using ClassLoader.getSystemResource().
[err] TRACE StatusLogger Trying to find [log4j2-test.yml] using context class loader com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414.
[err] TRACE StatusLogger Trying to find [log4j2-test.yml] using com.ibm.ws.classloading.internal.AppClassLoader@8bc0851 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-test.yml] using com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-test.yml] using ClassLoader.getSystemResource().
[err] TRACE StatusLogger Trying to find [log4j2-test.yaml] using context class loader com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414.
[err] TRACE StatusLogger Trying to find [log4j2-test.yaml] using com.ibm.ws.classloading.internal.AppClassLoader@8bc0851 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-test.yaml] using com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-test.yaml] using ClassLoader.getSystemResource().
[err] TRACE StatusLogger Trying to find [log4j2-test.json] using context class loader com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414.
[err] TRACE StatusLogger Trying to find [log4j2-test.json] using com.ibm.ws.classloading.internal.AppClassLoader@8bc0851 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-test.json] using com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-test.json] using ClassLoader.getSystemResource().
[err] TRACE StatusLogger Trying to find [log4j2-test.jsn] using context class loader com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414.
[err] TRACE StatusLogger Trying to find [log4j2-test.jsn] using com.ibm.ws.classloading.internal.AppClassLoader@8bc0851 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-test.jsn] using com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414 class loader.
[err] TRACE StatusLogger Trying to find [log4j2-test.jsn] using ClassLoader.getSystemResource().
[err] TRACE StatusLogger Trying to find [log4j2-test.xml] using context class loader com.ibm.ws.classloading.internal.ThreadContextClassLoader@834b414.
Since the last displayed filename is log4j2-test.xml
, this is the loaded file. The problem is that if I name my file as log4j2.xml
, another configuration named log4j2.properties
is loaded before it. And I can't find where this file is! There must be a way to discover where it is loaded from.