4

私は java.util.logging.Logger を使用しており、ログ レベルを SEVERE に制限したいのですが、彼はそれを尊重せず、すべてをログに記録します。なにが問題ですか?

private static final Logger log = Logger.getLogger(MyClass.class.getName());
private Handler fileHandler = null;

public static void myMethod(){
   fileHandler = new FileHandler("file", 1000000, 1, true);
   log.setLevel(Level.SEVERE);
   fileHandler.setLevel(Level.SEVERE);

   SimpleFormatter formatter = new SimpleFormatter();
   fileHandler.setFormatter(formatter);
   log.addHandler(fileHandler);

   log.log(Level.INFO, "Test1");
   log.log(Level.SEVERE, "Test2");
}

メッセージ 1 ("Teste1") とメッセージ 2 ("Test2") の両方がログに記録されています。2 番目のメッセージ (「Test2」) のみが表示されるように、ログ レベルを SEVERE に制限するにはどうすればよいですか?

4

2 に答える 2

1

logging.propertiesファイルでログレベルを正しく構成していないかjava.util.logging.config.file、アプリケーションの実行時にシステムプロパティを設定していないと思われます。

アプリケーションを実行するときに使用-Djava.util.logging.config.file=PATH TO YOUR logging.properties FILEします。

于 2012-09-03T15:54:37.263 に答える
0

David、log4j.properties がなくても、私のマシンでも問題なく動作します。よくわかりませんが、使用しているjarに問題がある可能性があります。ログレベルを「SEVERE」に設定するのを止めています。次の依存関係を使用してください。それは間違いなくうまくいくでしょう。

<groupId>log4j</groupId>
     <artifactId>log4j</artifactId>
 <version>1.2.12</version>
于 2012-09-09T04:16:52.627 に答える