Details

      Description

      The class org.jboss.logging.LoggerProviders checks for the presence of log4j using the 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();
          }
      

      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:

          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();
          }
      

      And indeed I started receiving logging messages from Hibernate (via JBoss logging.)

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  jamezp James Perkins
                  Reporter:
                  bighenry Henry Clout
                • Votes:
                  1 Vote for this issue
                  Watchers:
                  4 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: