2011-12-28 7 views
0

私はjava.utilのロギングを使用するアプリケーションを持っており、このアプリケーションで使用されるライブラリはsl4j、jcl、log4jなどのさまざまなロギングフレームワークを使用しています。私はこの依存関係を私のポームにthisとして追加します。また、以下のように異なるロガーを使用してログします。 出力にユーティリティログが存在しない理由jul-to-slf4jについては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

あなたのpomにlog4j依存関係がないのですか? – martin

+0

@martin slf4j-log4j12はlog4jに依存するので、私のクラスパスにあります。 – ayengin

+0

私はtomcatを使用していますが、これはTomcatのログプロパティが原因ですか? – ayengin

答えて

3

単に依存関係としてアーティファクトを追加するには十分ではありません。それに加えて、SLF4JBridgeHandler.install()(アプリケーション起動中、例えばサーブレットコンテキストリスナのどこか)を呼び出して、プログラムでブリッジを設定する必要があります。

注1:jul-to-slf4jは、TomcatのJUL実装がアプリケーションごとのロガー名前空間を作成するため、Tomcatでうまくいきます。ただし、他のアプリケーションサーバー(TomcatのようなJUL実装を使用しているサーバーを除く)で使用することはお勧めしません。

注2:SLF4JBridgeHandlerのJavadocを慎重に読んで、本当にそれを使用するかどうか(Tomcatでも)を確認する必要があります。