[
https://issues.apache.org/jira/browse/LOG4J2-924?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gary Gregory resolved LOG4J2-924.
---------------------------------
Resolution: Fixed
Fix Version/s: 2.2
Fixed in git master.
Please test.
I've deployed new SNAPSHOT jars to
https://repository.apache.org/content/repositories/snapshots/ (with the
exception of the log4j-perf jar which fails to mvn deploy).
> Log4j 1.2 Bridge doesn't map 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
> Fix For: 2.2
>
>
> 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:
> {code}
> jboss-logging 3.1.4--->log4j 1.2 bridge--->log4j2
> {code}
> 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]