[ 
https://issues.apache.org/jira/browse/LOG4J2-2025?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16141802#comment-16141802
 ] 

Gary Gregory commented on LOG4J2-2025:
--------------------------------------

A patch would be most welcome :-)

> Support Tomcat JULI's per-webapp JUL logging by implementing 
> java.util.logging.Handler
> --------------------------------------------------------------------------------------
>
>                 Key: LOG4J2-2025
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2025
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: JUL adapter
>    Affects Versions: 2.8.2
>         Environment: Tomcat 8.5.20, Oracle Java 1.8.0_144
>            Reporter: Ibrahim M. Ghazal
>            Priority: Minor
>
> On most servlet containers, the only way to redirect JUL calls to Log4j is by 
> setting the 
> {{java.util.logging.manager=org.apache.logging.log4j.jul.LogManager}} system 
> property *globally*. This often breaks the native logging of the container, 
> and could also break other apps on the same container do not use Log4j 2. 
> This also requires changing the container's settings and cannot be expressed 
> in the app itself.
> Another approach (used by slf4j) is to implement 
> {{java.util.logging.Handler}} and then install this handler at the root 
> logger, either programmatically by calling 
> {{LogManager.getLogManager().getLogger("").addHandler(...)}} or by changing 
> logging.properties at the JRE level. This also breaks the container's native 
> logging and other apps, but in different ways than LogManager. I do not 
> advocate this approach, but it's useful to know about it as a background for 
> this feature request.
> (tl;dr: It's impossible to reliably redirect JUL from a webapp without 
> creating a mess).
> Thankfully, Tomcat has a solution for this: Tomcat 
> [JULI|https://tomcat.apache.org/tomcat-8.5-doc/logging.html] allows 
> per-webapp configuration by adding a {{WEB-INF/classes/logging.properties}} 
> file with {{handlers=some.custom.Handler}} inside it. This will redirect JUL 
> calls from this webapp (and this webapp only) to that handler, and that 
> handler then can redirect to Log4j.
> In short: Add a {{java.util.logging.Handler}} implementation that redirects 
> to Log4j so that webapps can use Tomcat's per-webapp configuration and avoid 
> the JUL mess.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to