0

I have an application which use java.util logging and libraries used by this application use different logging frameworks such as sl4j ,jcl,log4j .Now I want to redirect all logs to log4j so i can take full controll on it.So i add this dependecies to my pom as this suggest.And log using different loggers as below .Why util log not present in output.

               _loggerUtil.log(Level.SEVERE, "*********************Util log**********");
             _loggerCommon.fatal("*********commons log ************");
             _loggerSlf4j.error("**************sl4j log **************");
             _loggerLog4j.fatal("**************log4j log**************");



     2012-01-05 17:11:35,508 [http-8080-3] ERROR com.endersys.itap.ui.module.user.LoginBean - *********commons log ************
^[[19~2012-01-05 17:11:43,561 [http-8080-3] ERROR com.endersys.itap.ui.module.user.LoginBean - **************sl4j log **************
2012-01-05 17:11:44,433 [http-8080-3] FATAL com.endersys.itap.ui.module.user.LoginBean - **************log4j log**************






   <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.6.4</version>
    </dependency>

      <!--java util to slf4j bridge -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
        <version>1.6.4</version>
    </dependency>


        <!--common logging  to slf4j bridge -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.6.4</version>
    </dependency>


      <!--sl4j to  log4j bridge-->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.6.4</version>
    </dependency>
ayengin
  • 1,606
  • 1
  • 22
  • 47

1 Answers1

4

For jul-to-slf4j it is not enough to simply add the artifact as a dependency. In addition to that, you need to set up the bridge programmatically by calling SLF4JBridgeHandler.install() (somewhere during application startup, e.g. in a servlet context listener).

Note 1: jul-to-slf4j works well in Tomcat because Tomcat's JUL implementation creates per-application logger namespaces. However, I would not recommend using it on any other application server (except those servers that have a JUL implementation similar to Tomcat's).

Note 2: You should carefully read the Javadoc of SLF4JBridgeHandler to check if you really want to use that (even on Tomcat).

Andreas Veithen
  • 8,868
  • 3
  • 25
  • 28