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._
> 


Reply via email to