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>

Reply via email to