実現したいこと
setUseParentHandlers(true)にすると子ロガーへの出力後、プロセスが停止してしまう原因を知りたい
発生している問題・分からないこと
java.util.logging.FileHandlerにデフォルトで設定されている
setUseParentHandlers(true)
を
setUseParentHandlers(false)
に変更することで子ロガーから親ロガーへの伝達を遮断することができると認識しております。
親ロガーへの伝達を遮断することで生じるリスクはありますでしょうか?
また、今回このような変更に至った経緯としましては、
setUseParentHandlers(true)であると子ロガーへの出力後、
プロセスが停止してしまうケースに直面したためです。
setUseParentHandlers(false)にすることでこの問題を解決することができたのですが、
なぜ親ロガーへの伝達をONにしているとプロセスが停止してしまうのか特定できずにいます。
根本的な原因についてご教示いただけないでしょうか。
親ロガー:ConsoleHandler
発生条件:一度に出力する文字数が多い場合
以上よろしくお願いいたします。
エラーメッセージ
error
1エラーメッセージは表示されません。
該当のソースコード
public static synchronized void logConfig(String logFilePath) throws IOException { if (fh != null) { logger.removeHandler(fh); fh.close(); fh = null; } fh = new FileHandler(logFilePath, true); fh.setFormatter(new SimpleFormatter()); logger.addHandler(fh); } public static void logMessage(String message) { logger.info(message); } public static void main(String[] args) throws Exception { FileLogger.logConfig(logFilePath); // logFilePathにはログファイルパスを格納 FileLogger.logMessage(param); // paramにはログファイルに出力する文字列を格納 }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
「どんな問題が発生していますか?」に記載したとおりです。
補足
特になし
あなたの回答
tips
プレビュー