java.util.Logging API について学習していますが、以下のサンプル コードに示すように、冗長な出力が生成される理由がわかりません。
Logger logger = Logger.getLogger("");
Logger logger1 = Logger.getLogger("1");
Logger logger1_2 = Logger.getLogger("1.2");
logger1 .addHandler(new ConsoleHandler());
logger1_2 .addHandler(new ConsoleHandler());
logger .info("msg:");
logger1 .info("msg: 1");
logger1_2 .info("msg: 1.2");
コンソールへの出力:
14-01-2012 10:32:41 java.util.logging.LogManager$RootLogger log
INFO: msg:
14-01-2012 10:32:42 logging.LoggingExamples main
INFO: msg: 1
14-01-2012 10:32:42 logging.LoggingExamples main
INFO: msg: 1
14-01-2012 10:32:42 logging.LoggingExamples main
INFO: msg: 1.2
14-01-2012 10:32:42 logging.LoggingExamples main
INFO: msg: 1.2
14-01-2012 10:32:42 logging.LoggingExamples main
INFO: msg: 1.2
ログ メッセージが親に渡され、同じメッセージが何度も表示されるのはなぜですか!? これはまったく効率的ではなく、重複した情報に対してログ ファイルが急速に増加します。理由を知っている人はいますか?これは Logging が持つべき性質ですか?
注: サンプル コードはhttp://tutorials.jenkov.com/java-logging/logger-hierarchy.htmlからコピーされました。