[ 
https://issues.apache.org/jira/browse/LOG4J2-924?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryan Rupp updated LOG4J2-924:
-----------------------------
    Affects Version/s: 2.1

> Log4j 1.2 Bridge doesn't translate trace level ALL correctly in 
> Category.getEffectiveLevel()
> --------------------------------------------------------------------------------------------
>
>                 Key: LOG4J2-924
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-924
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: log4j 1.2 emulation
>    Affects Versions: 2.1
>            Reporter: Ryan Rupp
>            Priority: Minor
>
> If I have in my logger configs:
> {code}
> <logger name="org.hibernate" level="ALL"/>
> {code}
> Using "ALL" as my log level for hibernate. Hibernate uses jboss-logging. 
> Jboss-logging just recently added support for Log4j2 (see version 3.2 - 
> https://issues.jboss.org/browse/JBLOGGING-95). However, I'm using 3.1.4 
> currently which ends up then using the log4j 1.2 bridge so:
> jboss-logging 3.1.4--->log4j 1.2 bridge--->log4j2
> I noticed some Hibernate code failing checking the logger level such as:
> {code}
> if (logger.isTraceEnabled() { 
>     // log something expensive
> }
> {code}
> Looking into this, it checks the loggers effective level against the passed 
> in level. So in this case the loggers effective level should be ALL which 
> should include TRACE. However, in the log4 1.2 bridge 
> Category.getEffectiveLevel() doesn't have a case statement for ALL so it ends 
> up defaulting to OFF:
> {code}
> public final Level getEffectiveLevel() {
>         switch (logger.getLevel().getStandardLevel()) {
>             case TRACE:
>                 return Level.TRACE;
>             case DEBUG:
>                 return Level.DEBUG;
>             case INFO:
>                 return Level.INFO;
>             case WARN:
>                 return Level.WARN;
>             case ERROR:
>                 return Level.ERROR;
>             case FATAL:
>                 return Level.FATAL;
>             default:
>                 return Level.OFF;
>         }
>     }
> {code}
> Here's the JBoss logging check for reference - 
> https://github.com/jboss-logging/jboss-logging/blob/master/src/main/java/org/jboss/logging/Log4jLogger.java#L36
> The first conditional will be true but the second will be false due to the 
> issue of mapping the ALL level.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to