1

次のコード例を試しています( hereのコードに基づいています)。私の目的は、実行時にログのレベルを設定することです。

package logchecker;
import java.util.logging.*;

public class Logchecker {

    private static final Logger logger = Logger.getLogger(Logchecker.class.getName());

   public static void main(String[] args) {
      System.out.println("This logger's level is " + logger.getLevel());   // null
      logger.setLevel(Level.ALL);
      System.out.println("This logger's level is " + logger.getLevel());   // null
      logger.info("TEST");
      logger.finest("FINEST TEST");
   }
}

出力は次のとおりです。

このロガーのレベルは null です

このロガーのレベルは ALL です

2013 年 9 月 17 日 1:46:31 PM logchecker.Logchecker メイン

情報: テスト

明らかに出力されませんlog.finest。私は何が欠けていますか?NetBeans 7.3 で実行しています。

4

1 に答える 1

1

Handlers レベルも設定する必要がありました。次のコードをメインに追加しました。

Logger root = Logger.getLogger("");
Handler[] handlers = root.getHandlers();
for(Handler h: handlers){
    h.setLevel(Level.INFO);
}

もちろん、必要に応じてレベルを設定できます。

解決策を教えてくれたコメントに再び感謝します

于 2013-09-24T08:43:49.580 に答える