I've recently upgraded from 8.0.15 to 8.0.18 and I have a new problem which I didn't have on 8.0.15. The configuration of tomcat and my application remained exactly the same when upgrading.
When running tomcat with -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector (defined in setenv.sh) to enable log4j2's async logging, I now get a ClassNotFoundException (see below). What could be the problem? Here's catalina.out with FINE level logging for org.apache.jasper.servlet: 04-Feb-2015 16:28:39.721 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.0.18 04-Feb-2015 16:28:39.721 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Jan 23 2015 11:56:07 UTC 04-Feb-2015 16:28:39.722 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.0.18.0 04-Feb-2015 16:28:39.722 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux 04-Feb-2015 16:28:39.722 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 3.13.0-45-generic 04-Feb-2015 16:28:39.723 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64 04-Feb-2015 16:28:39.723 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/lib/jvm/jdk1.7.0_71/jre 04-Feb-2015 16:28:39.723 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.7.0_71-b14 04-Feb-2015 16:28:39.723 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation 04-Feb-2015 16:28:39.724 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /home/tomcat/apache-tomcat-8.0.18 04-Feb-2015 16:28:39.724 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /home/tomcat/apache-tomcat-8.0.18 04-Feb-2015 16:28:39.725 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/home/tomcat/current_tomcat/conf/logging.properties 04-Feb-2015 16:28:39.725 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 04-Feb-2015 16:28:39.729 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector 04-Feb-2015 16:28:39.730 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.endorsed.dirs=/home/tomcat/current_tomcat/endorsed 04-Feb-2015 16:28:39.730 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/home/tomcat/current_tomcat 04-Feb-2015 16:28:39.730 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/home/tomcat/current_tomcat 04-Feb-2015 16:28:39.730 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/home/tomcat/current_tomcat/temp 04-Feb-2015 16:28:39.731 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments wa s not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib 04-Feb-2015 16:28:40.216 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio2-8080"] 04-Feb-2015 16:28:40.367 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 2840 ms 04-Feb-2015 16:28:40.512 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina 04-Feb-2015 16:28:40.519 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.0.18 04-Feb-2015 16:28:42.315 FINE [localhost-startStop-1] org.apache.jasper.servlet.JasperInitializer.onStartup Initializing Jasper for context [null] 04-Feb-2015 16:28:42.514 FINE [localhost-startStop-1] org.apache.jasper.servlet.JspServlet.init Scratch dir for the JSP engine is: /home/tomcat/apache-tomcat-8.0.18/work/Catalina/localhost/plstatic 04-Feb-2015 16:28:42.522 FINE [localhost-startStop-1] org.apache.jasper.servlet.JspServlet.init IMPORTANT: Do not modify the generated servlets 04-Feb-2015 16:28:42.635 FINE [localhost-startStop-1] org.apache.jasper.servlet.JasperInitializer.onStartup Initializing Jasper for context [null] 04-Feb-2015 16:28:42.663 FINE [localhost-startStop-1] org.apache.jasper.servlet.JspServlet.init Scratch dir for the JSP engine is: /home/tomcat/apache-tomcat-8.0.18/work/Catalina/localhost/release 04-Feb-2015 16:28:42.667 FINE [localhost-startStop-1] org.apache.jasper.servlet.JspServlet.init IMPORTANT: Do not modify the generated servlets 04-Feb-2015 16:28:42.676 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive /home/tomcat/apache-tomcat-8.0.18/webapps/ROOT.war 04-Feb-2015 16:28:47.242 FINE [localhost-startStop-1] org.apache.jasper.servlet.JasperInitializer.onStartup Initializing Jasper for context [MyTestContext] 04-Feb-2015 16:28:47.263 FINE [localhost-startStop-1] org.apache.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found in [file:/home/tomcat/apache-tomcat-8.0.18/webapps/ROOT/WEB-INF/ lib/disruptor-3.3.0.jar]. Consider adding the JAR to the tomcat.util.scan.StandardJarScanFilter.jarsToSkip property in CATALINA_BASE/conf/catalina.properties file. 04-Feb-2015 16:28:47.285 FINE [localhost-startStop-1] org.apache.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found in [file:/home/tomcat/apache-tomcat-8.0.18/webapps/ROOT/WEB-INF/ lib/log4j-core-2.1.jar]. Consider adding the JAR to the tomcat.util.scan.StandardJarScanFilter.jarsToSkip property in CATALINA_BASE/conf/catalina.properties file. ... (a few more jars without TLDs) 04-Feb-2015 16:28:47.296 FINE [localhost-startStop-1] org.apache.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found in [file:/home/tomcat/apache-tomcat-8.0.18/webapps/ROOT/WEB-INF/lib/guava-18.0.jar]. Consider adding the JAR to the tomcat.util.scan.StandardJarScanFilter.jarsToSkip property in CATALINA_BASE/conf/catalina.properties file. 04-Feb-2015 16:28:47.301 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. ERROR StatusLogger Unable to create context org.apache.logging.log4j.core.async.AsyncLoggerContextSelector^M java.lang.ClassNotFoundException: org.apache.logging.log4j.core.async.AsyncLoggerContextSelector at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1305) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1157) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:191) at org.apache.logging.log4j.util.LoaderUtil.loadClass(LoaderUtil.java:117) at org.apache.logging.log4j.util.LoaderUtil.newInstanceOf(LoaderUtil.java:136) at org.apache.logging.log4j.util.LoaderUtil.newCheckedInstanceOf(LoaderUtil.java:163) at org.apache.logging.log4j.core.util.Loader.newCheckedInstanceOf(Loader.java:311) at org.apache.logging.log4j.core.impl.Log4jContextFactory.createContextSelector(Log4jContextFactory.java:96) at org.apache.logging.log4j.core.impl.Log4jContextFactory.<init>(Log4jContextFactory.java:54) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at java.lang.Class.newInstance(Class.java:379) at org.apache.logging.log4j.LogManager.<clinit>(LogManager.java:96) at org.apache.logging.log4j.core.config.Configurator.getFactory(Configurator.java:154) at org.apache.logging.log4j.core.config.Configurator.initialize(Configurator.java:109) at org.apache.logging.log4j.web.Log4jWebInitializerImpl.initializeNonJndi(Log4jWebInitializerImpl.java:157) at org.apache.logging.log4j.web.Log4jWebInitializerImpl.start(Log4jWebInitializerImpl.java:107) at org.apache.logging.log4j.web.Log4jServletContainerInitializer.onStartup(Log4jServletContainerInitializer.java:57) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5143) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:917) at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1701) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) 2015-02-04 16:28:48,027 DEBUG Starting LoggerContext[name=WebappClassLoader context: ROOT delegate: false ----------> Parent Classloader: java.net.URLClassLoader@523bd44c ] from configuration at log4j2.xml 2015-02-04 16:28:48,028 DEBUG Starting LoggerContext[name=WebappClassLoader context: ROOT delegate: false ----------> Parent Classloader: java.net.URLClassLoader@523bd44c , org.apache.logging.log4j.core.LoggerContext@71df80c3] with configuration XmlConfiguration[location=/home/tomcat/apache-tomcat-8.0.18/webapps/ROOT/WEB-INF/classes/log4j2.xml]... 2015-02-04 16:28:48,029 DEBUG Shutdown hook enabled. Registering a new one. 2015-02-04 16:28:48,030 DEBUG Starting configuration XmlConfiguration[location=/home/tomcat/apache-tomcat-8.0.18/webapps/ROOT/WEB-INF/classes/log4j2.xml] Thanks