slinkydeveloper opened a new issue, #2099:
URL: https://github.com/apache/logging-log4j2/issues/2099

   ## Description
   
   Hi all, I just stumbled on an interesting behavior mixing 
`ContextDataProvider` and `ThreadContext`.
   
   In short, my application is using a dependency that provides a custom 
`ContextDataProvider` through SPI, but in my application code I also use 
`ThreadContext`.
   
   When bundling using the gradle shadowJar plugin, I didn't configured the 
plugin to merge the SPI files, thus only the custom `ContextDataProvider` was 
loaded in the uber JAR, and not the built-in `ThreadContextDataProvider`.
   
   Although it makes sense from the `ServiceLoader` POV, I wonder if something 
can be done to make this behavior less subtle, some ideas:
   
   * log4j2 could still mount the `ThreadContextDataProvider`, even though is 
not registered through SPI
   * log4j2 could print a warning when using `ThreadContext` but no 
`ThreadContextDataProvider` was loaded
   * Perhaps adding some documentation here helps as well 
https://logging.apache.org/log4j/2.x/manual/extending.html#custom-contextdataprovider
 , although for the final users that are mixing libraries, this might not be 
obvious anyway
   
   ## Configuration
   
   **Version:** 2.22.0
   
   **Operating system:** Linux
   
   **JDK:** 21
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to