0

java.util ロギングを使用するアプリケーションがあり、このアプリケーションで使用されるライブラリは、sl4j、jcl、log4j などのさまざまなロギング フレームワークを使用します。すべてのログを log4j にリダイレクトして、完全に制御できるようにしたいので、これを追加します。これが示唆するように、私のpomへの依存関係 。そして、以下のように異なるロガーを使用してログに記録します。出力に util log が表示されない理由

               _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>
4

1 に答える 1

4

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

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

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

于 2012-01-11T22:48:02.700 に答える