Log4j-appserver can be used to route logging from Tomcat 8.5 or later to Log4j 
2. See http://logging.apache.org/log4j/2.x/log4j-appserver/index.html 
<http://logging.apache.org/log4j/2.x/log4j-appserver/index.html>

Ralph

> On Apr 23, 2020, at 8:41 AM, Matt Sicker <boa...@gmail.com> wrote:
> 
> It almost sounds like you have duplicate jars somewhere, or you may
> have discovered some sort of regression. If you put log4j-core inside
> your Tomcat lib directory, then you don't want to use log4j-web at all
> since logging will be managed at the Java application level (i.e.,
> Tomcat itself) rather than at the war level. If you put log4j-core in
> your war file as a lib, then you shouldn't include it in your Tomcat
> lib, and you should include log4j-web in your war as that ensures your
> logging config matches the life cycle of your web application (through
> the ServletContextListener thing). I'm not really sure what
> log4j-appserver is for.
> 
> One thing to keep in mind is that the JUL used in Tomcat is modified.
> The log4j-jul bridge is for replacing the LogManager with a log4j
> native one. In Tomcat, this might not be possible as they have their
> own LogManager implementation, so you should try using the slf4j-jul
> bridge which implements a Filter instead of LogManager. I think
> there's an open ticket in log4j somewhere about adding a Filter
> implementation for JUL for that type of scenario, but the workaround
> is using the slf4j jul bridge and then the log4j-slf4j-impl bridge.
> 
> On Thu, 23 Apr 2020 at 09:52, Abdul Hussain
> <abdul.huss...@matillion.com.invalid> wrote:
>> 
>> Our application is a web application that uses tomcat 8 for the web
>> server. Our application is assembled and deployed with maven.
>> Previously we relied on the default logging offered by tomcat. I've
>> been attempting to switch over to log4j2 locally by switching our
>> pom.xml slf4j-jdk references to use log4j-slf4j-impl and log4j-web.
>> I've also set this property isLog4jAutoInitializationDisabled and also
>> included the listener changes documentation regarding servlet 2.5 web
>> application as this was causing exceptions (though we use servlet
>> 3.0). Regarding my tomcat configuration I've amended it to include a
>> log4j2 folder lib and conf (log4j2.xml) folder as per the
>> documentation. The lib folder includes log4j-api, log4j-appserver,
>> log4j-core and log4j-jul (versions 2.12.1).Issues we are having:
>> - The org.apache.logging.log4j.core.impl.Log4jProvider not a subtype
>> (not sure what to make of this exception I think the dependendencies
>> from the pom.xml are conflicting with those in my log4j2/lib folder)
>> - JUL logs following the log4j2.xml configuration except for including
>> the ThreadContext as it is losing it as soon as the logger enters
>> Log4j code from debugging (we've decided to switch all JUL logs to use
>> SLF4J)Apologies if I'm not being clear I'm trying to be exhaustive
>> regarding our setup and the issues we are having, our integration with
>> SLF4J log messages seem fine with preserving the thread context hence
>> why we've decided to switch all our JUL logs to use SLF4J, would be
>> good to find the root cause of that excption.
>> 
>> 
>> On Thu, 23 Apr 2020 at 14:53, Matt Sicker <boa...@gmail.com> wrote:
>> 
>>> Can you tell us more about how you assemble and deploy this application?
>>> There multiple ways to integrate log4j2 into web apps.
>>> 
>>> On Thu, Apr 23, 2020 at 08:51 Abdul Hussain
>>> <abdul.huss...@matillion.com.invalid> wrote:
>>> 
>>>> without the web jar my web application does not output logs.
>>>> 
>>>> On Thu, 23 Apr 2020 at 14:25, Matt Sicker <boa...@gmail.com> wrote:
>>>> 
>>>>> If you’re putting it as a shared library like that, then you don’t want
>>>> to
>>>>> use the web jar as well. It’s only for wars.
>>>>> 
>>>>> On Thu, Apr 23, 2020 at 08:18 Abdul Hussain
>>>>> <abdul.huss...@matillion.com.invalid> wrote:
>>>>> 
>>>>>> apologies I forgot to mention that I have added the log4j-web
>>>> dependency
>>>>>> within my pom file, with log4j-appserver dependency within my tomcat
>>>>>> log4j2/lib folder
>>>>>> 
>>>>>> On Thu, 23 Apr 2020 at 14:01, Matt Sicker <boa...@gmail.com> wrote:
>>>>>> 
>>>>>>> If you’re using log4j2 in a war file, you should add log4j-web as a
>>>>>>> dependency.
>>>>>>> 
>>>>>>> On Thu, Apr 23, 2020 at 05:57 Abdul Hussain
>>>>>>> <abdul.huss...@matillion.com.invalid> wrote:
>>>>>>> 
>>>>>>>> seems like a tomcat issue integrating with log4j2. Also what
>>>>>> dependencies
>>>>>>>> do I need to get JUL to log4j2 to not lose the ThreadContext?
>>>>>>>> 
>>>>>>>> On Thu, 23 Apr 2020 at 11:55, Abdul Hussain <
>>>>>> abdul.huss...@matillion.com
>>>>>>>> 
>>>>>>>> wrote:
>>>>>>>> 
>>>>>>>>> 10:43:20.589 [localhost-startStop-1] INFO
>>>>>>>>> org.apache.catalina.startup.HostConfig - Deployment of web
>>>>>> application
>>>>>>>>> directory
>>>>>> [/home/abdullah/Desktop/apache-tomcat-8.5.50/webapps/manager]
>>>>>>>> has
>>>>>>>>> finished in [206] ms
>>>>>>>>> 10:43:37.464 [RMI TCP Connection(2)-127.0.0.1] INFO
>>>>>>>>> org.apache.jasper.servlet.TldScanner - 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.
>>>>>>>>> DEBUG StatusLogger Unable to retrieve provider from ClassLoader
>>>>>>>>> java.net.URLClassLoader@344f4dea
>>>>>>>>> java.util.ServiceConfigurationError:
>>>>>>>>> org.apache.logging.log4j.spi.Provider: Provider
>>>>>>>>> org.apache.logging.log4j.core.impl.Log4jProvider not a subtype
>>>>>>>>> at java.util.ServiceLoader.fail(ServiceLoader.java:239)
>>>>>>>>> at java.util.ServiceLoader.access$300(ServiceLoader.java:185)
>>>>>>>>> at
>>>>>>>> 
>>>>>> 
>>>> java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:376)
>>>>>>>>> at
>>>>> java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
>>>>>>>>> at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.util.ProviderUtil.loadProviders(ProviderUtil.java:109)
>>>>>>>>> at
>>>>>>>> 
>>>>> org.apache.logging.log4j.util.ProviderUtil.<init>(ProviderUtil.java:68)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.util.ProviderUtil.lazyInit(ProviderUtil.java:150)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.util.ProviderUtil.hasProviders(ProviderUtil.java:134)
>>>>>>>>> at
>>>> org.apache.logging.log4j.LogManager.<clinit>(LogManager.java:89)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:138)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:45)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:48)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:30)
>>>>>>>>> at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)
>>>>>>>>> at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> com.matillion.bi.cactus.server.ContextListener.<clinit>(ContextListener.java:23)
>>>>>>>>> at
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>>>> Method)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>>>>>>>> at
>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:151)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4621)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5165)
>>>>>>>>> at
>>>>>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
>>>>>>>>> at
>>>>>>>> 
>>>>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
>>>>>>>>> at
>>>>>>> 
>>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
>>>>>>>>> at
>>>>>>> 
>>>> org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1720)
>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>>>>>>>>> at
>>>>>>> 
>>>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:479)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:428)
>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>>>>>>>>> at
>>>>>>> 
>>>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
>>>>>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>>>> at
>>>>>> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
>>>>>>>>> at sun.rmi.transport.Transport$1.run(Transport.java:200)
>>>>>>>>> at sun.rmi.transport.Transport$1.run(Transport.java:197)
>>>>>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>>>>>> at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
>>>>>>>>> at
>>>>>>>> 
>>>>>> 
>>>> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
>>>>>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>>>>>>>>> at java.lang.Thread.run(Thread.java:748)
>>>>>>>>> DEBUG StatusLogger Unable to retrieve provider from ClassLoader
>>>>>>>>> sun.misc.Launcher$AppClassLoader@18b4aac2
>>>>>>>>> java.util.ServiceConfigurationError:
>>>>>>>>> org.apache.logging.log4j.spi.Provider: Provider
>>>>>>>>> org.apache.logging.log4j.core.impl.Log4jProvider not a subtype
>>>>>>>>> at java.util.ServiceLoader.fail(ServiceLoader.java:239)
>>>>>>>>> at java.util.ServiceLoader.access$300(ServiceLoader.java:185)
>>>>>>>>> at
>>>>>>>> 
>>>>>> 
>>>> java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:376)
>>>>>>>>> at
>>>>> java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
>>>>>>>>> at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.util.ProviderUtil.loadProviders(ProviderUtil.java:109)
>>>>>>>>> at
>>>>>>>> 
>>>>> org.apache.logging.log4j.util.ProviderUtil.<init>(ProviderUtil.java:68)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.util.ProviderUtil.lazyInit(ProviderUtil.java:150)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.util.ProviderUtil.hasProviders(ProviderUtil.java:134)
>>>>>>>>> at
>>>> org.apache.logging.log4j.LogManager.<clinit>(LogManager.java:89)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:138)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:45)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:48)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:30)
>>>>>>>>> at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)
>>>>>>>>> at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> com.matillion.bi.cactus.server.ContextListener.<clinit>(ContextListener.java:23)
>>>>>>>>> at
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>>>> Method)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>>>>>>>> at
>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:151)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4621)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5165)
>>>>>>>>> at
>>>>>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
>>>>>>>>> at
>>>>>>>> 
>>>>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
>>>>>>>>> at
>>>>>>> 
>>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
>>>>>>>>> at
>>>>>>> 
>>>> org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1720)
>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>>>>>>>>> at
>>>>>>> 
>>>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:479)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:428)
>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>>>>>>>>> at
>>>>>>> 
>>>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
>>>>>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>>>> at
>>>>>> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
>>>>>>>>> at sun.rmi.transport.Transport$1.run(Transport.java:200)
>>>>>>>>> at sun.rmi.transport.Transport$1.run(Transport.java:197)
>>>>>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>>>>>> at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
>>>>>>>>> at
>>>>>>>> 
>>>>>> 
>>>> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
>>>>>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>>>>>>>>> at java.lang.Thread.run(Thread.java:748)
>>>>>>>>> DEBUG StatusLogger Using ShutdownCallbackRegistry class
>>>>>>>>> 
>>>> org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry
>>>>>>>>> DEBUG StatusLogger Took 0.217997 seconds to load 211 plugins
>>> from
>>>>>>>>> ParallelWebappClassLoader
>>>>>>>>>  context: emerald-decaf
>>>>>>>>>  delegate: false
>>>>>>>>> ----------> Parent Classloader:
>>>>>>>>> java.net.URLClassLoader@344f4dea
>>>>>>>>> 
>>>>>>>>> DEBUG StatusLogger PluginManager 'Converter' found 44 plugins
>>>>>>>>> DEBUG StatusLogger Starting OutputStreamManager
>>>>>>> SYSTEM_OUT.false.false-1
>>>>>>>>> DEBUG StatusLogger Starting LoggerContext[name=21fb773,
>>>>>>>>> org.apache.logging.log4j.core.LoggerContext@76a22895]...
>>>>>>>>> DEBUG StatusLogger Reconfiguration started for
>>>>> context[name=21fb773]
>>>>>> at
>>>>>>>>> URI null (org.apache.logging.log4j.core.LoggerContext@76a22895
>>> )
>>>>> with
>>>>>>>>> optional ClassLoader: null
>>>>>>>>> DEBUG StatusLogger PluginManager 'ConfigurationFactory' found 4
>>>>>> plugins
>>>>>>>>> DEBUG StatusLogger Missing dependencies for Yaml support,
>>>>>>>>> ConfigurationFactory
>>>>>>>>> 
>>>> org.apache.logging.log4j.core.config.yaml.YamlConfigurationFactory
>>>>> is
>>>>>>>>> inactive
>>>>>>>>> DEBUG StatusLogger Using configurationFactory
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.core.config.ConfigurationFactory$Factory@16e881d4
>>>>>>>>> DEBUG StatusLogger Closing ByteArrayInputStream
>>>>>>>>> java.io.ByteArrayInputStream@6df65972
>>>>>>>>> 
>>>>>>>>> On Thu, 23 Apr 2020 at 11:55, Abdul Hussain <
>>>>>>> abdul.huss...@matillion.com
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>>> Managed to get passed the SLF4J warning, I had a transitive
>>>>>> dependency
>>>>>>>>>> which I've excluded, any insight on the following exception
>>> that
>>>>> I'm
>>>>>>>> still
>>>>>>>>>> getting:
>>>>>>>>>> 
>>>>>>>>>> On Wed, 22 Apr 2020 at 18:13, Matt Sicker <boa...@gmail.com>
>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>>> That log says you had both bridges installed at the same
>>> time.
>>>>>>>>>>> 
>>>>>>>>>>> On Wed, 22 Apr 2020 at 10:33, Abdul Hussain
>>>>>>>>>>> <abdul.huss...@matillion.com.invalid> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> I was previously bridging JUL to SLF4J
>>>> (org.slf4j.jul-to-slf4j)
>>>>>> and
>>>>>>>>>>> then
>>>>>>>>>>>> from SLF4j to
>>>> Log4j(org.apache.logging.log4j.log4j-slf4j-impl)
>>>>>>> though
>>>>>>>>>>>> utilised ThreadContext within my code rather than SLF4J
>>> MDC.
>>>> I
>>>>>> also
>>>>>>>>>>> set the
>>>>>>>>>>>> following flag on run:
>>>>>>>>>>>> 
>>>>> java.util.logging.manager=org.apache.logging.log4j.jul.LogManager
>>>>>>>>>>>> 
>>>>>>>>>>>> Noticing the performance impact with bridging from JUL to
>>>>> SLF4J.
>>>>>> I
>>>>>>>> have
>>>>>>>>>>>> also tried directly bridging from jul to log4j with
>>>>>>>>>>> lof4j-jul-2.12.1.jar
>>>>>>>>>>>> which seems to format the jul messages according to
>>>> log4j2.xml
>>>>>>> though
>>>>>>>>>>> the
>>>>>>>>>>>> thread context is being lost as soon as I enter log4j code
>>>> and
>>>>> so
>>>>>>> MDC
>>>>>>>>>>> is
>>>>>>>>>>>> not working for JUL logs.
>>>>>>>>>>>> 
>>>>>>>>>>>> The logs below may shed some insight on this. I'm not sure
>>>>>>>>>>>> where slf4j-jdk14-1.7.25.jar is being picked up from given
>>>> it's
>>>>>> not
>>>>>>>>>>> within
>>>>>>>>>>>> my pom.xml. Also my tomcat log4j2 lib folder includes
>>>>> log4j-api,
>>>>>>>>>>>> log4j-appserver, log4j-jul, log4j-core. My pom file
>>> includes
>>>>>>>> log4j-api
>>>>>>>>>>> and
>>>>>>>>>>>> log4j-slf4j-impl. I also previously had log4j-jul within
>>> the
>>>>> pom
>>>>>>>> though
>>>>>>>>>>>> that didn't seem to make a difference.
>>>>>>>>>>>> 
>>>>>>>>>>>> There is conflicting documentation/information floating
>>>> around
>>>>>>>>>>> regarding
>>>>>>>>>>>> dependencies so I may have missed something.
>>>>>>>>>>>> 
>>>>>>>>>>>> SLF4J: Class path contains multiple SLF4J bindings.
>>>>>>>>>>>>> SLF4J: Found binding in
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> [jar:file:/home/abdullah/Desktop/apache-tomcat-8.5.50/webapps/emerald-decaf/WEB-INF/lib/log4j-slf4j-impl-2.12.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
>>>>>>>>>>>>> SLF4J: Found binding in
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> [jar:file:/home/abdullah/Desktop/apache-tomcat-8.5.50/webapps/emerald-decaf/WEB-INF/lib/slf4j-jdk14-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
>>>>>>>>>>>>> SLF4J: See
>>>> http://www.slf4j.org/codes.html#multiple_bindings
>>>>>> for
>>>>>>>> an
>>>>>>>>>>>>> explanation.
>>>>>>>>>>>>> SLF4J: Actual binding is of type
>>>>>>>>>>>>> [org.apache.logging.slf4j.Log4jLoggerFactory]
>>>>>>>>>>>>> DEBUG StatusLogger Unable to retrieve provider from
>>>>> ClassLoader
>>>>>>>>>>>>> java.net.URLClassLoader@6e4566f1
>>>>>>>>>>>>> java.util.ServiceConfigurationError:
>>>>>>>>>>>>> org.apache.logging.log4j.spi.Provider: Provider
>>>>>>>>>>>>> org.apache.logging.log4j.core.impl.Log4jProvider not a
>>>>> subtype
>>>>>>>>>>>>> at java.util.ServiceLoader.fail(ServiceLoader.java:239)
>>>>>>>>>>>>> at
>>>> java.util.ServiceLoader.access$300(ServiceLoader.java:185)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>>>> 
>>>>>> 
>>>> java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:376)
>>>>>>>>>>>>> at
>>>>>>>> java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
>>>>>>>>>>>>> at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.util.ProviderUtil.loadProviders(ProviderUtil.java:109)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>>> 
>>>> org.apache.logging.log4j.util.ProviderUtil.<init>(ProviderUtil.java:68)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.util.ProviderUtil.lazyInit(ProviderUtil.java:150)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.util.ProviderUtil.hasProviders(ProviderUtil.java:134)
>>>>>>>>>>>>> at
>>>>>>> org.apache.logging.log4j.LogManager.<clinit>(LogManager.java:89)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:138)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:45)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:48)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:30)
>>>>>>>>>>>>> at
>>>> org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)
>>>>>>>>>>>>> at
>>>> org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> com.matillion.bi.cactus.server.ContextListener.<clinit>(ContextListener.java:23)
>>>>>>>>>>>>> at
>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>>>>>>>> Method)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>>>>>>>>>>>> at
>>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:151)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4621)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5165)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>>> 
>>>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>>> 
>>>> org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1720)
>>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>> Method)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>>> 
>>>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:479)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:428)
>>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>> Method)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>>> 
>>>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
>>>>>>>>>>>>> at java.security.AccessController.doPrivileged(Native
>>>> Method)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
>>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>> Method)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
>>>>>>>>>>>>> at sun.rmi.transport.Transport$1.run(Transport.java:200)
>>>>>>>>>>>>> at sun.rmi.transport.Transport$1.run(Transport.java:197)
>>>>>>>>>>>>> at java.security.AccessController.doPrivileged(Native
>>>> Method)
>>>>>>>>>>>>> at
>>>>> sun.rmi.transport.Transport.serviceCall(Transport.java:196)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>>>> 
>>>>>> 
>>>> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
>>>>>>>>>>>>> at java.security.AccessController.doPrivileged(Native
>>>> Method)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>>>>>>>>>>>>> at java.lang.Thread.run(Thread.java:748)
>>>>>>>>>>>>> DEBUG StatusLogger Unable to retrieve provider from
>>>>> ClassLoader
>>>>>>>>>>>>> sun.misc.Launcher$AppClassLoader@18b4aac2
>>>>>>>>>>>>> java.util.ServiceConfigurationError:
>>>>>>>>>>>>> org.apache.logging.log4j.spi.Provider: Provider
>>>>>>>>>>>>> org.apache.logging.log4j.core.impl.Log4jProvider not a
>>>>> subtype
>>>>>>>>>>>>> at java.util.ServiceLoader.fail(ServiceLoader.java:239)
>>>>>>>>>>>>> at
>>>> java.util.ServiceLoader.access$300(ServiceLoader.java:185)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>>>> 
>>>>>> 
>>>> java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:376)
>>>>>>>>>>>>> at
>>>>>>>> java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
>>>>>>>>>>>>> at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.util.ProviderUtil.loadProviders(ProviderUtil.java:109)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>>> 
>>>> org.apache.logging.log4j.util.ProviderUtil.<init>(ProviderUtil.java:68)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.util.ProviderUtil.lazyInit(ProviderUtil.java:150)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.util.ProviderUtil.hasProviders(ProviderUtil.java:134)
>>>>>>>>>>>>> at
>>>>>>> org.apache.logging.log4j.LogManager.<clinit>(LogManager.java:89)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:138)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:45)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:48)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:30)
>>>>>>>>>>>>> at
>>>> org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)
>>>>>>>>>>>>> at
>>>> org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> com.matillion.bi.cactus.server.ContextListener.<clinit>(ContextListener.java:23)
>>>>>>>>>>>>> at
>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>>>>>>>> Method)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>>>>>>>>>>>> at
>>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:151)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4621)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5165)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>>> 
>>>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>>> 
>>>> org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1720)
>>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>> Method)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>>> 
>>>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:479)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:428)
>>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>> Method)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>>> 
>>>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
>>>>>>>>>>>>> at java.security.AccessController.doPrivileged(Native
>>>> Method)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
>>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>> Method)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
>>>>>>>>>>>>> at sun.rmi.transport.Transport$1.run(Transport.java:200)
>>>>>>>>>>>>> at sun.rmi.transport.Transport$1.run(Transport.java:197)
>>>>>>>>>>>>> at java.security.AccessController.doPrivileged(Native
>>>> Method)
>>>>>>>>>>>>> at
>>>>> sun.rmi.transport.Transport.serviceCall(Transport.java:196)
>>>>>>>>>>>>> at
>>>>>>>>>>> 
>>>>>>>> 
>>>>>> 
>>>> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
>>>>>>>>>>>>> at java.security.AccessController.doPrivileged(Native
>>>> Method)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>>>>>>>>>>>>> at
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>>>>>>>>>>>>> at java.lang.Thread.run(Thread.java:748)
>>>>>>>>>>>>> DEBUG StatusLogger Using ShutdownCallbackRegistry class
>>>>>>>>>>>>> 
>>>>>>> org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry
>>>>>>>>>>>>> DEBUG StatusLogger Took 0.108460 seconds to load 211
>>>> plugins
>>>>>> from
>>>>>>>>>>>>> ParallelWebappClassLoader
>>>>>>>>>>>>>  context: emerald-decaf
>>>>>>>>>>>>>  delegate: false
>>>>>>>>>>>>> ----------> Parent Classloader:
>>>>>>>>>>>>> java.net.URLClassLoader@6e4566f1
>>>>>>>>>>>>> 
>>>>>>>>>>>>> DEBUG StatusLogger PluginManager 'Converter' found 44
>>>> plugins
>>>>>>>>>>>>> DEBUG StatusLogger Starting OutputStreamManager
>>>>>>>>>>> SYSTEM_OUT.false.false-1
>>>>>>>>>>>>> DEBUG StatusLogger Starting LoggerContext[name=44ccb73c,
>>>>>>>>>>>>> org.apache.logging.log4j.core.LoggerContext@5a4cc2cb]...
>>>>>>>>>>>>> DEBUG StatusLogger Reconfiguration started for
>>>>>>>>>>> context[name=44ccb73c] at
>>>>>>>>>>>>> URI null
>>>>> (org.apache.logging.log4j.core.LoggerContext@5a4cc2cb
>>>>>> )
>>>>>>>> with
>>>>>>>>>>>>> optional ClassLoader: null
>>>>>>>>>>>>> DEBUG StatusLogger PluginManager 'ConfigurationFactory'
>>>>> found 4
>>>>>>>>>>> plugins
>>>>>>>>>>>>> DEBUG StatusLogger Missing dependencies for Yaml support,
>>>>>>>>>>>>> ConfigurationFactory
>>>>>>>>>>>>> 
>>>>>>> org.apache.logging.log4j.core.config.yaml.YamlConfigurationFactory
>>>>>>>> is
>>>>>>>>>>>>> inactive
>>>>>>>>>>>>> DEBUG StatusLogger Using configurationFactory
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.logging.log4j.core.config.ConfigurationFactory$Factory@5b9c071b
>>>>>>>>>>>>> DEBUG StatusLogger Closing ByteArrayInputStream
>>>>>>>>>>>>> java.io.ByteArrayInputStream@26d94ebf
>>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> I've since reverted the JUL to SLF4J bridget
>>>>>>>>>>>> 
>>>>>>>>>>>> On Sat, 18 Apr 2020 at 05:47, Ralph Goers <
>>>>>>>> ralph.go...@dslextreme.com>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>>> If you are using SLF4J to add to the MDC, the classes in
>>>>>>>>>>> log4j-slf4j-impl
>>>>>>>>>>>>> will update Log4j’s ThreadContext (a ThreadLocal Map)
>>> under
>>>>> the
>>>>>>>>>>> covers.
>>>>>>>>>>>>> Regardless of what API you use for logging, when they are
>>>>>> bridged
>>>>>>>> to
>>>>>>>>>>>>> log4j-core it will locate the ThreadContext and retrieve
>>>>>> whatever
>>>>>>>> is
>>>>>>>>>>> in it.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> What mechanism are you using to cause JUL log events to
>>> end
>>>>> up
>>>>>> in
>>>>>>>>>>> Log4j?
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Ralph
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Apr 17, 2020, at 9:17 AM, Abdul <
>>>>>>> abdul.huss...@matillion.com
>>>>>>>>>>> .INVALID>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Hey,
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> So I've just switched my logging framework to Log4j2 to
>>>>>>> leverage
>>>>>>>>>>> it's
>>>>>>>>>>>>> support for MDC. Given that I've used a mixture of SLF4J
>>>> and
>>>>>> JUL
>>>>>>>> log
>>>>>>>>>>>>> messages within my code I've decided to leverage Log4j
>>>>> ability
>>>>>> to
>>>>>>>>>>> convert
>>>>>>>>>>>>> JUL log messages to Log4j2 messages. I've set the
>>> following
>>>>>> flag
>>>>>>> to
>>>>>>>>>>> my
>>>>>>>>>>>>> application
>>>>>>>>>>>>> 
>>>>>>> -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
>>>>>>>>>>> and
>>>>>>>>>>>>> added all the required jars. Logging seems to be working
>>>>> pretty
>>>>>>>> good
>>>>>>>>>>> in
>>>>>>>>>>>>> that my SLF4J and JUL messages are being formatted
>>>> according
>>>>> to
>>>>>>> my
>>>>>>>>>>> log4j2
>>>>>>>>>>>>> config file I added a Hello prefix to each message,
>>> though
>>>>> MDC
>>>>>>>> seems
>>>>>>>>>>> to not
>>>>>>>>>>>>> be picked up with the JUL messages.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> From debugging when I use the SLF4J logger it calls
>>>>>> Log4jLogger
>>>>>>>>>>> which is
>>>>>>>>>>>>> preserving the ThreadContext whereas my JUL log messages
>>>> are
>>>>>>>>>>>>> re-initializing the ThreadContext as soon as they enter
>>>>>>>>>>> AbstractLogger.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Anyone know if it's possible to preserve ThreadContext
>>>> with
>>>>>> JUL
>>>>>>>>>>> messages
>>>>>>>>>>>>> being converted to Log4j2 messages or is there a
>>> potential
>>>>>>>>>>> alternative
>>>>>>>>>>>>> method I can look into?
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> My Log4j2.xml config file:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>>>>>>>>>>> <Configuration status="INFO">
>>>>>>>>>>>>>>    <Appenders>
>>>>>>>>>>>>>>        <Console name="Console" target="SYSTEM_OUT">
>>>>>>>>>>>>>>            <PatternLayout pattern="Hello
>>>> %X{Organisation}
>>>>>>>>>>>>> %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
>>>>>>>>>>>>>>        </Console>
>>>>>>>>>>>>>>    </Appenders>
>>>>>>>>>>>>>>    <Loggers>
>>>>>>>>>>>>>>        <Root level="info">
>>>>>>>>>>>>>>            <AppenderRef ref="Console"/>
>>>>>>>>>>>>>>        </Root>
>>>>>>>>>>>>>>    </Loggers>
>>>>>>>>>>>>>> </Configuration>
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Abdul Haseeb Hussain
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> *The information in this email is confidential and
>>> solely
>>>>> for
>>>>>>> the
>>>>>>>>>>> use of
>>>>>>>>>>>>> the intended recipient(s). If you receive this email in
>>>>> error,
>>>>>>>> please
>>>>>>>>>>>>> notify the sender and delete the email from your system
>>>>>>>> immediately.
>>>>>>>>>>> In
>>>>>>>>>>>>> such circumstances, you must not make any use of the
>>> email
>>>> or
>>>>>> its
>>>>>>>>>>> contents.
>>>>>>>>>>>>> Views expressed by an individual in this email do not
>>>>>> necessarily
>>>>>>>>>>> reflect
>>>>>>>>>>>>> the views of Matillion Ltd.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> *
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> *Matillion Ltd accepts no responsibility for any damage
>>>>>> caused
>>>>>>> by
>>>>>>>>>>>>> malicious software transmitted by email. Email
>>> transmission
>>>>>>> cannot
>>>>>>>> be
>>>>>>>>>>>>> guaranteed to be secure and error free, it is possible
>>> for
>>>> it
>>>>>> to
>>>>>>> be
>>>>>>>>>>>>> intercepted, lost, destroyed, later, incomplete or with
>>>> added
>>>>>>>>>>> malware. The
>>>>>>>>>>>>> sender does not accept liability for any errors or
>>>> omissions
>>>>> in
>>>>>>> the
>>>>>>>>>>>>> contents of this message, which arise as a result of
>>> email
>>>>>>>>>>> transmission
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> *
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> *Matillion Ltd, Station House, Stamford New Road,
>>>>> Altrincham,
>>>>>>>>>>> England,
>>>>>>>>>>>>> WA14 1EP (Main and registered office address). *_Company
>>>>>> number:
>>>>>>>>>>> 07474948._
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> --
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> *The information in this email is confidential and solely
>>> for
>>>>> the
>>>>>>> use
>>>>>>>>>>> of
>>>>>>>>>>>> the intended recipient(s). If you receive this email in
>>>> error,
>>>>>>> please
>>>>>>>>>>>> notify the sender and delete the email from your system
>>>>>>> immediately.
>>>>>>>> In
>>>>>>>>>>>> such circumstances, you must not make any use of the email
>>> or
>>>>> its
>>>>>>>>>>> contents.
>>>>>>>>>>>> Views expressed by an individual in this email do not
>>>>> necessarily
>>>>>>>>>>> reflect
>>>>>>>>>>>> the views of Matillion Ltd.
>>>>>>>>>>>> 
>>>>>>>>>>>> *
>>>>>>>>>>>> 
>>>>>>>>>>>> *Matillion Ltd accepts no responsibility
>>>>>>>>>>>> for any damage caused by malicious software transmitted by
>>>>> email.
>>>>>>>> Email
>>>>>>>>>>>> transmission cannot be guaranteed to be secure and error
>>>> free,
>>>>> it
>>>>>>> is
>>>>>>>>>>>> possible for it to be intercepted, lost, destroyed, later,
>>>>>>> incomplete
>>>>>>>>>>> or
>>>>>>>>>>>> with added malware. The sender does not accept liability
>>> for
>>>>> any
>>>>>>>>>>> errors or
>>>>>>>>>>>> omissions in the contents of this message, which arise as a
>>>>>> result
>>>>>>> of
>>>>>>>>>>> email
>>>>>>>>>>>> transmission
>>>>>>>>>>>> 
>>>>>>>>>>>> *
>>>>>>>>>>>> 
>>>>>>>>>>>> *Matillion Ltd, Station House, Stamford New Road,
>>>>>>>>>>>> Altrincham, England, WA14 1EP (Main and registered office
>>>>>> address).
>>>>>>>>>>>> *_Company number: 07474948._
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> --
>>>>>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>> 
>>>>>>>> --
>>>>>>>> 
>>>>>>>> 
>>>>>>>> *The information in this email is confidential and solely for the
>>>> use
>>>>>> of
>>>>>>>> the intended recipient(s). If you receive this email in error,
>>>> please
>>>>>>>> notify the sender and delete the email from your system
>>>> immediately.
>>>>> In
>>>>>>>> such circumstances, you must not make any use of the email or its
>>>>>>>> contents.
>>>>>>>> Views expressed by an individual in this email do not necessarily
>>>>>> reflect
>>>>>>>> the views of Matillion Ltd.
>>>>>>>> 
>>>>>>>> *
>>>>>>>> 
>>>>>>>> *Matillion Ltd accepts no responsibility
>>>>>>>> for any damage caused by malicious software transmitted by email.
>>>>> Email
>>>>>>>> transmission cannot be guaranteed to be secure and error free, it
>>>> is
>>>>>>>> possible for it to be intercepted, lost, destroyed, later,
>>>> incomplete
>>>>>> or
>>>>>>>> with added malware. The sender does not accept liability for any
>>>>> errors
>>>>>>> or
>>>>>>>> omissions in the contents of this message, which arise as a
>>> result
>>>> of
>>>>>>>> email
>>>>>>>> transmission
>>>>>>>> 
>>>>>>>> *
>>>>>>>> 
>>>>>>>> *Matillion Ltd, Station House, Stamford New Road,
>>>>>>>> Altrincham, England, WA14 1EP (Main and registered office
>>> address).
>>>>>>>> *_Company number: 07474948._
>>>>>>>> 
>>>>>>> --
>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> 
>>>>>> 
>>>>>> *The information in this email is confidential and solely for the use
>>>> of
>>>>>> the intended recipient(s). If you receive this email in error, please
>>>>>> notify the sender and delete the email from your system immediately.
>>> In
>>>>>> such circumstances, you must not make any use of the email or its
>>>>>> contents.
>>>>>> Views expressed by an individual in this email do not necessarily
>>>> reflect
>>>>>> the views of Matillion Ltd.
>>>>>> 
>>>>>> *
>>>>>> 
>>>>>> *Matillion Ltd accepts no responsibility
>>>>>> for any damage caused by malicious software transmitted by email.
>>> Email
>>>>>> transmission cannot be guaranteed to be secure and error free, it is
>>>>>> possible for it to be intercepted, lost, destroyed, later, incomplete
>>>> or
>>>>>> with added malware. The sender does not accept liability for any
>>> errors
>>>>> or
>>>>>> omissions in the contents of this message, which arise as a result of
>>>>>> email
>>>>>> transmission
>>>>>> 
>>>>>> *
>>>>>> 
>>>>>> *Matillion Ltd, Station House, Stamford New Road,
>>>>>> Altrincham, England, WA14 1EP (Main and registered office address).
>>>>>> *_Company number: 07474948._
>>>>>> 
>>>>> --
>>>>> Matt Sicker <boa...@gmail.com>
>>>>> 
>>>> 
>>>> --
>>>> 
>>>> 
>>>> *The information in this email is confidential and solely for the use of
>>>> the intended recipient(s). If you receive this email in error, please
>>>> notify the sender and delete the email from your system immediately. In
>>>> such circumstances, you must not make any use of the email or its
>>>> contents.
>>>> Views expressed by an individual in this email do not necessarily reflect
>>>> the views of Matillion Ltd.
>>>> 
>>>> *
>>>> 
>>>> *Matillion Ltd accepts no responsibility
>>>> for any damage caused by malicious software transmitted by email. Email
>>>> transmission cannot be guaranteed to be secure and error free, it is
>>>> possible for it to be intercepted, lost, destroyed, later, incomplete or
>>>> with added malware. The sender does not accept liability for any errors
>>> or
>>>> omissions in the contents of this message, which arise as a result of
>>>> email
>>>> transmission
>>>> 
>>>> *
>>>> 
>>>> *Matillion Ltd, Station House, Stamford New Road,
>>>> Altrincham, England, WA14 1EP (Main and registered office address).
>>>> *_Company number: 07474948._
>>>> 
>>> --
>>> Matt Sicker <boa...@gmail.com>
>>> 
>> 
>> --
>> 
>> 
>> *The information in this email is confidential and solely for the use of
>> the intended recipient(s). If you receive this email in error, please
>> notify the sender and delete the email from your system immediately. In
>> such circumstances, you must not make any use of the email or its contents.
>> Views expressed by an individual in this email do not necessarily reflect
>> the views of Matillion Ltd.
>> 
>> *
>> 
>> *Matillion Ltd accepts no responsibility
>> for any damage caused by malicious software transmitted by email. Email
>> transmission cannot be guaranteed to be secure and error free, it is
>> possible for it to be intercepted, lost, destroyed, later, incomplete or
>> with added malware. The sender does not accept liability for any errors or
>> omissions in the contents of this message, which arise as a result of email
>> transmission
>> 
>> *
>> 
>> *Matillion Ltd, Station House, Stamford New Road,
>> Altrincham, England, WA14 1EP (Main and registered office address).
>> *_Company number: 07474948._
> 
> 
> 
> -- 
> Matt Sicker <boa...@gmail.com>
> 

Reply via email to