0

Javaプログラムでlog4jを使用しました。私はそれを初期化しました:

BasicConfigurator.configure(); // logger configuration
try {
     logger.setLevel(Level.DEBUG);
} catch (Exception e) {
     System.out.println("Logfile not found");
}

しかし、プログラムの実行中に、1 つではなく 3 つのログ ステートメントが表示されます。例えば、

3 lines 
1047 [main] INFO ibis.Preproc.Ratings  - Added AS TIMEZONE to tZones[0] = GMT-12:00
1047 [main] INFO ibis.Preproc.Ratings  - Added AS TIMEZONE to tZones[0] = GMT-12:00
1047 [main] INFO ibis.Preproc.Ratings  - Added AS TIMEZONE to tZones[0] = GMT-12:00

1行の代わりに

1047 [main] INFO ibis.Preproc.Ratings  - Added AS TIMEZONE to tZones[0] = GMT-12:00

これを回避するために log4j に対して行う追加の構成はありますか?

4

4 に答える 4

4

同様の動作を経験したことがありますが、Log4J が複数回構成されていることが判明しました。BasicConfigurator を使用するだけでなく、私が忘れていた log4j.xml ファイルも使用します。クラスパスのどこかに追加の Log4J 構成があるのでしょうか?

于 2009-03-07T10:37:32.863 に答える
0

私の場合、BasicConfigurator.configure() を呼び出すたびに新しいアペンダーを追加していました。

構成をリセットして解決しました:

BasicConfigurator.resetConfiguration() //reset first
BasicConfigurator.configure() // then configure

何が起こっているのかはっきりと理解していないことを告白しなければなりませんが、問題は確実に解決しました。

于 2012-07-18T16:17:25.583 に答える