logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lukas Vogel (JIRA)" <j...@apache.org>
Subject [jira] [Created] (LOG4J2-1606) log4j-web deinitalizes the Logger too early if listeners defined in web.xml use it
Date Thu, 22 Sep 2016 11:43:20 GMT
Lukas Vogel created LOG4J2-1606:
-----------------------------------

             Summary: log4j-web deinitalizes the Logger too early if listeners defined in
web.xml use it 
                 Key: LOG4J2-1606
                 URL: https://issues.apache.org/jira/browse/LOG4J2-1606
             Project: Log4j 2
          Issue Type: Bug
          Components: Web/Servlet
    Affects Versions: 2.6.2
         Environment: Java8, Linux/Mac, Tomcat
            Reporter: Lukas Vogel


We use log4j in a Apache Tomcat environment.
In the web.xml file we define a custom ServerStartup listener that initializes the DB etc
and logs both in contextInitialized and contextDestroyed.

If we use the log4j-web package the class Log4jServletContainerInitializer initializes the
logger and adds a Log4jServletContextListener to the ServletContext. Since this listener is
added after our listener the method Log4jServletContextListener#contextDestroyed is called
before our listener's contextDestroyed method. Thus the Logger is de-initialized too early.

We could disable auto initialization and initialize the logger ourselves but then doing it
in the listener is too late since the WebService-framework (Metro glassfish) initializes the
webservice endpoints before the listener. Since we use static logger variables in those webservice
classes this would trigger the message "StatusLogger no log4j configuration found..."  because
the logger was not yet initialized.

One possible patch we see is that we make an option to manually add the Log4jServletContextListener:
In Log4jServletContainerInitializer we would put an "if (! Manually added)" around the  call
"servletContext.addListener(new Log4jServletContextListener());" and then we could manually
add it to the listeners in web.xml

If you have any other suggestions I would be glad to hear them.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org


Mime
View raw message