[
https://issues.jboss.org/browse/JBLOGGING-94?page=com.atlassian.jira.plug...
]
Nicholas Williams commented on JBLOGGING-94:
--------------------------------------------
Yes, 3.1.3.GA is still marked as unreleased in JIRA
(
https://issues.jboss.org/browse/JBLOGGING/fixforversion/12319898), which is incorrect
because it was released on March 5
(
http://search.maven.org/#artifactdetails%7Corg.jboss.logging%7Cjboss-logg...).
Someone needs to go in and marked it as released and then add a 3.1.4.GA.
JBoss Logging does not detect log4j 2.0
---------------------------------------
Key: JBLOGGING-94
URL:
https://issues.jboss.org/browse/JBLOGGING-94
Project: JBoss Logging
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: jboss-logging-log4j
Affects Versions: 3.1.2.GA
Environment: Hibernate
Reporter: Henry Clout
Assignee: James Perkins
Fix For: 3.2.0.Beta1
The class org.jboss.logging.LoggerProviders checks for the presence of log4j using the
code:
{code}
private static LoggerProvider tryLog4j(final ClassLoader cl) throws
ClassNotFoundException {
Class.forName("org.apache.log4j.LogManager", true, cl);
// JBLOGGING-65 - slf4j can disguise itself as log4j. Test for a class that
slf4j doesn't provide.
Class.forName("org.apache.log4j.Hierarchy", true, cl);
return new Log4jLoggerProvider();
}
{code}
However, despite having the log4j-1.2-api-2.0.jar bridge included, this fails as the
class org.apache.log4j.Hierarchy is not present in log4j 2.0.
I worked around this by forcing JBoss logging to use slf4j (which is then proxied to
log4j) by setting the -Dorg.jboss.logging.provider=slf4j option.
As a proper fix, however, how about checking for a class that is included in log4j 1.2,
2.0 but not slf4j? org.apache.log4j.config.PropertySetter seems to tick the box.
I tested changing the afore mentioned method to:
{code}
private static LoggerProvider tryLog4j(final ClassLoader cl) throws
ClassNotFoundException {
Class.forName("org.apache.log4j.LogManager", true, cl);
// JBLOGGING-65 - slf4j can disguise itself as log4j. Test for a class that
slf4j doesn't provide.
Class.forName("org.apache.log4j.config.PropertySetter", true, cl);
return new Log4jLoggerProvider();
}
{code}
And indeed I started receiving logging messages from Hibernate (via JBoss logging.)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira