Search code examples
javaweb-servicesjax-wslog4j2

Webservice Handler in Second Module prevents log4j2 Configuration


Environment: JDK 7, WebLogic 12.1.3.0 server (patch 3) Maven Build system

Building on Maven, I have a webservice WAR module depending on a second JAR module that defines webservice handlers. The Webservice module has a context listener that should later initialize log4j2 from the database (cyclic). There is no log4j2.xml defined anywhere, nor desired.

The problem is that when handlers are enabled by using the @HandlerChain annotation at the webservice endpoint, log4j2 configuration goes corrupt, before the web service context listener can initialize it.

Module DemoWebService:

@WebService(endpointInterface = "demo.IDemoWebService")
@HandlerChain(file = "handlers.xml")
public class DemoWebService implements IDemoWebService {
...
}

public class DemoServletContextListener implements ServletContextListener {

    /** Status Logger */
    private static final Logger LOG = StatusLogger.getLogger();

    @Override
    public void contextInitialized(ServletContextEvent event) {
        System.out.println("Demo listener context intialized");
        System.out.println(LOG.getLevel() + " - " + LOG.isDebugEnabled() + " - " + LOG.isInfoEnabled() + " - " + LOG.isWarnEnabled());

        LOG.info("LOG Demo listener context intialized");
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {
        System.out.println("Demo listener context destroyed");
        LOG.info("LOG Demo listener context destroyed");
    }
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">

  <display-name>DemoWebService</display-name>

    <!-- log4j2 configuration -->
    <context-param>
        <param-name>isLog4jAutoInitializationDisabled</param-name>
        <param-value>true</param-value>
    </context-param>

    <listener>
        <listener-class>demo.DemoServletContextListener</listener-class>
    </listener> 

    ...
</web-app>

handlers.xml

<?xml version="1.0" encoding="UTF-8"?>
<handler-chains xmlns="http://java.sun.com/xml/ns/javaee">
    <handler-chain>
        <handler>
            <handler-name>Performance</handler-name>
            <handler-class>demo.wshandler.WebServiceDemoHandler</handler-class>
        </handler>
    </handler-chain>
</handler-chains>

Module wshandler:

public class WebServiceDemoHandler {

    private static Logger log = LogManager.getLogger(WebServiceDemoHandler.class);

    @Override

    public boolean handleMessage(SOAPMessageContext context) {
        log.info("something");
        return true;
    }

    @Override
    public boolean handlingNotRequired() {
        return false; // this handler always handles the message
    }
}

Now, when I compare server logs during deployment once when @HandlerChain(file = "handlers.xml") is active and once, when commented out, the difference in the log are basically the following lines:

Handler chain not active:

Demo listener context intialized
TRACE - true - true - true
INFO StatusLogger LOG Demo listener context intialized

Handler chain active:

DEBUG StatusLogger Loaded Provider Provider[priority=10, className=org.apache.logging.log4j.core.impl.Log4jContextFactory, url=zip:C:wl_homeSer_projectsdomainsbase_domain/tmp/_WL_user/DemoWebService-1.0-SNAPSHOT/3or6mr/war/WEB-INF/lib/log4j-core-2.6.jar!/META-INF/log4j-provider.properties, classLoader=weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f]
DEBUG StatusLogger Loaded Provider Provider[priority=10, className=org.apache.logging.log4j.core.impl.Log4jContextFactory, url=zip:C:wl_homeSer_projectsdomainsbase_domain/tmp/_WL_user/DemoWebService-1.0-SNAPSHOT/3or6mr/war/WEB-INF/lib/log4j-core-2.6.jar!/META-INF/log4j-provider.properties, classLoader=weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war]
DEBUG StatusLogger Using ShutdownCallbackRegistry class org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry
DEBUG StatusLogger Using ShutdownCallbackRegistry class org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry
DEBUG StatusLogger Took 0,086401 seconds to load 184 plugins from weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f
DEBUG StatusLogger PluginManager 'Converter' found 41 plugins
DEBUG StatusLogger Jansi is not installed, cannot find org.fusesource.jansi.WindowsAnsiOutputStream
DEBUG StatusLogger Starting OutputStreamManager SYSTEM_OUT.false-1
DEBUG StatusLogger Starting LoggerContext[name=7d5bfc18, org.apache.logging.log4j.core.LoggerContext@31da3f72]...
DEBUG StatusLogger Reconfiguration started for context[name=7d5bfc18] at URI null (org.apache.logging.log4j.core.LoggerContext@31da3f72) with optional ClassLoader: null
DEBUG StatusLogger PluginManager 'ConfigurationFactory' found 4 plugins
DEBUG StatusLogger Missing dependencies for Yaml support
DEBUG StatusLogger Missing dependencies for Json support
DEBUG StatusLogger Using configurationFactory org.apache.logging.log4j.core.config.ConfigurationFactory$Factory@83bf63b
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.properties] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.properties] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.properties] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.properties] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.yml] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.yml] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.yml] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.yml] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.yaml] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.yaml] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.yaml] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.yaml] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.json] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.json] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.json] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.json] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.jsn] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.jsn] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.jsn] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.jsn] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.xml] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.xml] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.xml] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2-test7d5bfc18.xml] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2-test.properties] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2-test.properties] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2-test.properties] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2-test.properties] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2-test.yml] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2-test.yml] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2-test.yml] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2-test.yml] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2-test.yaml] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2-test.yaml] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2-test.yaml] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2-test.yaml] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2-test.json] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2-test.json] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2-test.json] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2-test.json] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2-test.jsn] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2-test.jsn] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2-test.jsn] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2-test.jsn] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2-test.xml] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2-test.xml] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2-test.xml] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2-test.xml] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j27d5bfc18.properties] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j27d5bfc18.properties] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j27d5bfc18.properties] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j27d5bfc18.properties] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j27d5bfc18.yml] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j27d5bfc18.yml] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j27d5bfc18.yml] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j27d5bfc18.yml] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j27d5bfc18.yaml] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j27d5bfc18.yaml] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j27d5bfc18.yaml] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j27d5bfc18.yaml] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j27d5bfc18.json] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j27d5bfc18.json] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j27d5bfc18.json] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j27d5bfc18.json] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j27d5bfc18.jsn] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j27d5bfc18.jsn] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j27d5bfc18.jsn] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j27d5bfc18.jsn] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j27d5bfc18.xml] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j27d5bfc18.xml] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j27d5bfc18.xml] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j27d5bfc18.xml] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2.properties] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2.properties] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2.properties] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2.properties] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2.yml] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2.yml] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2.yml] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2.yml] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2.yaml] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2.yaml] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2.yaml] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2.yaml] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2.json] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2.json] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2.json] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2.json] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2.jsn] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2.jsn] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2.jsn] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2.jsn] using ClassLoader.getSystemResource().
TRACE StatusLogger Trying to find [log4j2.xml] using context class loader weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f.
TRACE StatusLogger Trying to find [log4j2.xml] using weblogic.utils.classloaders.ChangeAwareClassLoader@7d5bfc18 finder: weblogic.utils.classloaders.CodeGenClassFinder@5a13f911 annotation: DemoWebService-1.0-SNAPSHOT@DemoWebService-1.0-SNAPSHOT.war class loader.
TRACE StatusLogger Trying to find [log4j2.xml] using weblogic.wsee.util.ClassLoaderUtil$DelegatingLoader@2883f04f class loader.
TRACE StatusLogger Trying to find [log4j2.xml] using ClassLoader.getSystemResource().
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
DEBUG StatusLogger PluginManager 'Converter' found 41 plugins
DEBUG StatusLogger Jansi is not installed, cannot find org.fusesource.jansi.WindowsAnsiOutputStream
DEBUG StatusLogger Starting OutputStreamManager SYSTEM_OUT.false-2
DEBUG StatusLogger Initializing configuration org.apache.logging.log4j.core.config.DefaultConfiguration@6b1cf2b3
DEBUG StatusLogger Installed script engines
DEBUG StatusLogger juel Version: 1.0, Language: JSP 2.1 EL, Threading: MULTITHREADED, Compile: false, Names: {juel}
DEBUG StatusLogger Oracle Nashorn Version: 1.8.0_71, Language: ECMAScript, Threading: Not Thread Safe, Compile: true, Names: {nashorn, Nashorn, js, JS, JavaScript, javascript, ECMAScript, ecmascript}
DEBUG StatusLogger Groovy Scripting Engine Version: 2.0, Language: Groovy, Threading: MULTITHREADED, Compile: true, Names: {groovy, Groovy}
DEBUG StatusLogger PluginManager 'Core' found 100 plugins
DEBUG StatusLogger PluginManager 'Level' found 0 plugins
DEBUG StatusLogger Configuration org.apache.logging.log4j.core.config.DefaultConfiguration@6b1cf2b3 initialized
DEBUG StatusLogger Starting configuration org.apache.logging.log4j.core.config.DefaultConfiguration@6b1cf2b3
DEBUG StatusLogger Started configuration org.apache.logging.log4j.core.config.DefaultConfiguration@6b1cf2b3 OK.
TRACE StatusLogger Stopping org.apache.logging.log4j.core.config.DefaultConfiguration@6f5a0c09...
TRACE StatusLogger DefaultConfiguration notified 1 ReliabilityStrategies that config will be stopped.
TRACE StatusLogger DefaultConfiguration stopping root LoggerConfig.
TRACE StatusLogger DefaultConfiguration notifying ReliabilityStrategies that appenders will be stopped.
TRACE StatusLogger DefaultConfiguration stopping remaining Appenders.
DEBUG StatusLogger Shutting down OutputStreamManager SYSTEM_OUT.false-1
TRACE StatusLogger DefaultConfiguration stopped 1 remaining Appenders.
TRACE StatusLogger DefaultConfiguration cleaning Appenders from 1 LoggerConfigs.
DEBUG StatusLogger Stopped org.apache.logging.log4j.core.config.DefaultConfiguration@6f5a0c09 OK
TRACE StatusLogger Reregistering MBeans after reconfigure. Selector=org.apache.logging.log4j.core.selector.ClassLoaderContextSelector@44387dfb
TRACE StatusLogger Reregistering context (1/1): '7d5bfc18' org.apache.logging.log4j.core.LoggerContext@31da3f72
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=7d5bfc18'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=7d5bfc18,component=StatusLogger'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=7d5bfc18,component=ContextSelector'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=7d5bfc18,component=Loggers,name=*'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=7d5bfc18,component=Appenders,name=*'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=7d5bfc18,component=AsyncAppenders,name=*'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=7d5bfc18,component=AsyncLoggerRingBuffer'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=7d5bfc18,component=Loggers,name=*,subtype=RingBuffer'
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=7d5bfc18
Demo listener context intialized
TRACE - false - false - true

What is happening here, is I guess Java's classloader becomes active before the web context listener and then triggers initialization of log4j2, unwanted. This leads to an unrecoverable corrupt log4j2 configuration and all further logs are lost.


Solution

  • The answer to the posted question is simple to include into class DemoServletContextListener the line

    StatusLogger.getLogger().reset();
    

    and the StatusLogger will work again. However, the broken overall logj4 configuration cannot be solved like this. Yet, the initialization code was omitted here, and therefore is at most topic of another post-