[
https://issues.apache.org/jira/browse/LOG4J2-2025?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17229532#comment-17229532
]
Ilamparithi Natarajan commented on LOG4J2-2025:
-----------------------------------------------
[~rgoers] I plan to to use this change, wonder if there was any reason for not
backporting this to 2.x
> 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
> Assignee: Ralph Goers
> Priority: Minor
> Fix For: 3.0.0
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> 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
(v8.3.4#803005)