希望するLevel
でLogger.setLevel
メソッドを呼び出すと、実行時にLogger
の出力レベルを変更できます。
以下は、その使用法を示す例である:
Logger logger = Logger.getLogger("myLogger");
logger.addAppender(new ConsoleAppender(new SimpleLayout()));
System.out.println("*** The current level will be INFO");
logger.setLevel(Level.INFO);
logger.warn("Only INFO and higher will appear");
logger.info("Only INFO and higher will appear");
logger.debug("Only INFO and higher will appear");
System.out.println("*** Changing level to DEBUG");
// remember the previous level
Level previousLevel = logger.getLevel();
logger.setLevel(Level.DEBUG);
logger.warn("DEBUG and higher will appear");
logger.info("DEBUG and higher will appear");
logger.debug("DEBUG and higher will appear");
System.out.println("*** Changing level back to previous level");
// revert to previous level
logger.setLevel(previousLevel);
logger.warn("Only INFO and higher will appear");
logger.info("Only INFO and higher will appear");
logger.debug("Only INFO and higher will appear");
上記出力:
*** The current level will be INFO
WARN - Only INFO and higher will appear
INFO - Only INFO and higher will appear
*** Changing level to DEBUG
WARN - DEBUG and higher will appear
INFO - DEBUG and higher will appear
DEBUG - DEBUG and higher will appear
*** Changing level back to previous level
WARN - Only INFO and higher will appear
INFO - Only INFO and higher will appear
上記myLogger
という名前のLogger
のレベルを変更する方法を示したが、レベルは場合現在のリポジトリ内のすべてのロガーを変更する必要があります。ルートロガーのsetLevel
メソッドLogger.getRootLogger
sho uldを呼び出して、すべての子ロガーのレベルを変更します。
これはコメントであり、答えではありません。コメントをするには、あなたが答えを知っている質問に答えてみてください! – durron597