You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Evil Bit <ev...@zoho.com> on 2015/02/04 17:44:42 UTC

Issues with log4j.core.async.AsyncLoggerContextSelector when upgrading from 8.0.15 to 8.0.18

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.&lt;init&gt;(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.&lt;clinit&gt;(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
----------&gt; 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
----------&gt; 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


Re: Issues with log4j.core.async.AsyncLoggerContextSelector when upgrading from 8.0.15 to 8.0.18

Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

To whom it may concern,

On 2/4/15 12:15 PM, Evil Bit wrote:
> setenv.sh does have an extra "\r" but the same file worked for me
> on 8.0.15 - I only copied it from the older tomcat.

How did you copy it? Was 8.0.15 running on Windows or *NIX?

> I removed it and now it works on 8.0.18 too. thank you.
> 
> ---- On Wed, 04 Feb 2015 08:52:24 -0800
> Caldarale&lt;Chuck.Caldarale@unisys.com&gt; wrote ----
> 
> &gt; From: Evil Bit [mailto:evilbit@zoho.com] &gt; Subject: Issues
> with log4j.core.async.AsyncLoggerContextSelector when upgrading
> from 8.0.15 to 8.0.18
> 
> &gt; When running tomcat with &gt;
> -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
>  &gt; (defined in setenv.sh) to enable log4j2's async logging, I
> now get a ClassNotFoundException &gt; (see below). What could be
> the problem?
> 
> &gt; ERROR StatusLogger Unable to create context
> org.apache.logging.log4j.core.async.AsyncLoggerContextSelector^M
> 
> Note the ^M at the end of the class name; this makes me suspicious
> that your setenv.sh file has been edited on Windows and then used
> on Linux/UNIX/OSX/? (been there, done that).

Good catch. I saw the ^M too but assumed it was a copy/paste mailing
list thing or some other unrelated issue.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCAAGBQJU03h3AAoJEBzwKT+lPKRYyq0QAK1yjTVxUx+p6paL2M5C6gJz
0NKClLDL1vtnKYhiquw970NVYKn6vp1tJaZpEnfIv1/CV4aadyzAqJ6x7f/61a5/
ah/nX+e0Dtw5EAJSidx8qXBcU8gz35Yda3TRDmfRa/zZ45hfOjDspf6YV4Fh7glN
lbdVYUQapJO0htTzbReaUd0NODHulu67x1TZyeIboVHlSaNcS5TCGiSlZJBvleUT
/nrtdaUkhkAdrQRiFZR7SO9lqRD9TKFeWu35mgNGWG/W9mMDa4NXabCbKS0nFE/b
kqcWUSa5F4XLpZ+w7H5rkoxUApuPmTXiywlYBks/+hZ/6tnPRRSvSo7CJTkdDYDT
uEoJUqnYLWkJVv4Qhmf6fiflatx6UcmwbO8cYFlDt3XuSU762Tw/MaLQ4qUUqHnf
1SYBBzWrWbrjJZPSvFDMYTxlIiCapAlJUAeVYGJT4sVCblquUVZKuQXDnL/yq4Hv
rxU3WKlZFi/wsi75IvoUmTumI0mHGr5Kf6gOApZaMyfwuM2whMnz5X9bO55+2hm9
s1lvpG732X0o1gQxTSzSi/G7McrbMEvxDbbkjLThE0U2IN/RyQRXQFl2QpDEjzQA
9V4WIyi0Bdwr0GLorkibQnd8RHfO+ns0PZy6Fh94N1Vq48tgpEEkaaAZsi0Wp3H3
zt5MO1Zz1Yf4V6uAxBhI
=y/iW
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: Issues with log4j.core.async.AsyncLoggerContextSelector when upgrading from 8.0.15 to 8.0.18

Posted by Evil Bit <ev...@zoho.com>.
setenv.sh does have an extra "\r" but the same file worked for me on 8.0.15 - I only copied it from the older tomcat.
I removed it and now it works on 8.0.18 too. thank you.

---- On Wed, 04 Feb 2015 08:52:24 -0800  Caldarale&lt;Chuck.Caldarale@unisys.com&gt; wrote ---- 

&gt; From: Evil Bit [mailto:evilbit@zoho.com] 
&gt; Subject: Issues with log4j.core.async.AsyncLoggerContextSelector when upgrading from 8.0.15 to 8.0.18 
 
&gt; When running tomcat with 
&gt; -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector 
&gt; (defined in setenv.sh) to enable log4j2's async logging, I now get a ClassNotFoundException 
&gt; (see below). What could be the problem? 
 
&gt; ERROR StatusLogger Unable to create context org.apache.logging.log4j.core.async.AsyncLoggerContextSelector^M 
 
Note the ^M at the end of the class name; this makes me suspicious that your setenv.sh file has been edited on Windows and then used on Linux/UNIX/OSX/? (been there, done that). 
 
 - Chuck 
 
 
THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. 
 
 
 
--------------------------------------------------------------------- 
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org 
For additional commands, e-mail: users-help@tomcat.apache.org 
 





RE: Issues with log4j.core.async.AsyncLoggerContextSelector when upgrading from 8.0.15 to 8.0.18

Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: Evil Bit [mailto:evilbit@zoho.com] 
> Subject: Issues with log4j.core.async.AsyncLoggerContextSelector when upgrading from 8.0.15 to 8.0.18

> 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?

> ERROR StatusLogger Unable to create context org.apache.logging.log4j.core.async.AsyncLoggerContextSelector^M 

Note the ^M at the end of the class name; this makes me suspicious that your setenv.sh file has been edited on Windows and then used on Linux/UNIX/OSX/? (been there, done that).

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org