2011-12-28 1 views
0

이 애플리케이션에서 사용하는 java.util 로깅 및 라이브러리는 다른 로깅 프레임 워크 (예 : sl4j, jcl, log4j)를 사용합니다. 이제 모든 로그를 log4j로 리디렉션하고 싶습니다. 그것에 대한 완전한 제어권을 가져라. 나는이 돈을 this과 같이 pom에 추가한다. 아래에 다른 로거를 사용하여 기록한다. 유틸리티 로그가 출력에없는 이유는 무엇입니까?slf4j api를 사용하여 로그를 log4j로 리디렉션

   _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> 
+0

거기에 log4j 종속성이 없습니까? – martin

+0

@martin slf4j-log4j12는 log4j에 따라 다르므로 내 클래스 경로에 있습니다. – ayengin

+0

바람둥이를 사용하고 있습니다. 바람둥이의 로깅 속성 때문에이 문제가 발생합니까? – ayengin

답변

3

jul-to-slf4j를 들어 단순히 종속성으로 이슈를 추가하는 것만으로는 충분하지 않습니다. 그 외에도 SLF4JBridgeHandler.install() (예 : 서블릿 컨텍스트 수신기와 같은 애플리케이션 시작 중 어딘가에)을 호출하여 프로그래밍 방식으로 브릿지를 설정해야합니다.

참고 1 : jul-to-slf4j은 Tomcat의 JUL 구현이 응용 프로그램 별 로거 네임 스페이스를 만들기 때문에 Tomcat에서 잘 작동합니다. 그러나 다른 응용 프로그램 서버 (Tomcat과 유사한 JUL 구현이있는 서버 제외)에서는이 응용 프로그램을 사용하지 않는 것이 좋습니다.

참고 2 : SLF4JBridgeHandler의 Javadoc을주의 깊게 읽고 (Tomcat에서도) 실제로 사용할지 확인해야합니다.