There seems to be an issue with reading from the WEB-INF/classes/log4j2.component.properties file (root cause unknown currently).If I add the following to $CATALINA_HOME/bin/setenv.sh file:export CATALINA_OPTS="$CATALINA_OPTS -DLog4jContextSelector=org.apache.logging.log4j.core.selector.JndiContextSelector" the testing2-catalina.out separated logging file is created and written to as expected in $CATALINA_HOME/logs dir. However, I don't see it being created for testing1-catalina.out which is also configured for separated logging (root cause unknown).
Arbi Sookazian | Sr Software Engineer | Medata, Inc. 5 Peters Canyon Road, Suite 250 Irvine, CA 92606 asookaz...@medata.com | www.medata.com ----- Original Message ----- From: Arbi Sookazian <asookaz...@medata.com> To: log4j-user@logging.apache.org Sent: Tue, 29 Apr 2025 08:55:21 -0700 (PDT) Subject: Re: Unable to config/init logging separation for web app on Tomcat 7.0.82 body {height: 100%; color:#000000; font-size:12pt; font-family:arial,helvetica,sans-serif;}Sorry, just realized a possibly important detail. In dev envmt, I am using slf4j-api-2.0.6.jar, in QA we are using slf4j-api-1.7.25.jar. When log4j2.debug was enabled in previous testing, I see the following logging/notes: DEBUG StatusLogger Building Plugin[name=logger, class=org.apache.logging.log4j.core.config.LoggerConfig]. DEBUG StatusLogger createLogger(additivity="false", level="TRACE", name="org.springframework", includeLocation="null", ={LogToRollingFile, Console}, ={}, Configuration(jar:file:/C:/sw/apache-tomcat-7.0.84/webapps/base/WEB-INF/lib/base.jar!/log4j2.xml), Filter=null) DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=66fbd5ea,component=Loggers,name=org.springframework SLF4J: No SLF4J providers were found. SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details. SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x or earlier. SLF4J: Ignoring binding found at [jar:file:/C:/sw/apache-tomcat-7.0.84/shared/log4j-slf4j-impl-2.9.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See https://www.slf4j.org/codes.html#ignoredBindings for an explanation. I will enable same debug logging and test again. Perhaps the version of the slf4j-api-*.jar needs to be matched/upgraded in QA envmt. The log4j*.jar files are identical in dev and QA $CATALINA_HOME/shared dir: log4j-1.2-api-2.9.1.jar log4j-api-2.9.1.jar log4j-core-2.9.1.jar log4j-jcl-2.9.1.jar log4j-slf4j-impl-2.9.1.jar log4j-web-2.9.1.jar Arbi Sookazian | Sr Software Engineer | Medata, Inc. 5 Peters Canyon Road, Suite 250 Irvine, CA 92606 asookaz...@medata.com | www.medata.com ----- Original Message ----- From: Arbi Sookazian <asookaz...@medata.com> To: log4j-user@logging.apache.org Sent: Tue, 29 Apr 2025 08:22:12 -0700 (PDT) Subject: Unable to config/init logging separation for web app on Tomcat 7.0.82 Hi, I have been able to successfully configure and log separately for multiple web apps deployed to same Tomcat 7.0.84 container in dev environment (Windows 11 w/ cygwin). Now trying to do the same testing in QA environment with Tomcat 7.0.82 (Linux) and having issue below at startup. I doubt it has anything to do with differing OS. Please advise what is wrong or is it possibly a JAR mismatch in $CATALINA_HOME/shared dir wrt log4j-*.jar files or slf4j-*.jar files between the two environments. log4j-web-2.9.1.jar is in shared dir. Thanks. INFO: Deploying web application directory /opt/apache/testing-apache-tomcat-7.0.82/webapps/testing2DEBUG StatusLogger Log4jServletContextListener ensuring that Log4j starts up properly. DEBUG StatusLogger getConfigURI found resource [jndi:/localhost/testing2/WEB-INF/classes/log4j2.xml] in servletContext at [./WEB-INF/classes/log4j2.xml] WARN StatusLogger Potential problem: Selector is not an instance of NamedContextSelector. We have double checked the configs in web.xml and the log4j2.xml as well as log4j2.component.properties. Everything looks correct/expected in the QA setup. Contents of log4j2.component.properties: log4j2.enableJndiContextSelector=true Log4jContextSelector=org.apache.logging.log4j.core.selector.JndiContextSelector Contents of web.xml added snippet (added above <listener> section): <context-param> <param-name>isLog4jAutoInitializationDisabled</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>isLog4jContextSelectorNamed</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>log4jContextName</param-name> <param-value>testing2</param-value> </context-param> <context-param> <param-name>log4jConfiguration</param-name> <param-value>./WEB-INF/classes/log4j2.xml</param-value> </context-param> <env-entry> <env-entry-name>log4j/context-name</env-entry-name> <env-entry-value>testing2</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry> <listener> <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class> </listener> <filter> <filter-name>log4jServletFilter</filter-name> <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class> </filter> <filter-mapping> <filter-name>log4jServletFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>INCLUDE</dispatcher> <dispatcher>ERROR</dispatcher> </filter-mapping> Arbi Sookazian | Sr Software Engineer | Medata, Inc. 5 Peters Canyon Road, Suite 250 Irvine, CA 92606 asookaz...@medata.com | www.medata.com