logging-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LOG4J2-2025) Support Tomcat JULI's per-webapp JUL logging by implementing java.util.logging.Handler
Date Mon, 09 Oct 2017 06:36:01 GMT

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

ASF subversion and git services commented on LOG4J2-2025:

Commit f01a5f09bd72ece58cfc2c7307616e50d36810e9 in logging-log4j2's branch refs/heads/master
from [~ralph_goers@dslextreme.com]
[ https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;h=f01a5f0 ]

LOG4J2-2025 - reapply the patch

> 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: 2.10.0
> 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

View raw message