操作
リファクタ #472
完了スタックトレースなどのエラー情報をログファイルに記録する
リファクタ #472:
スタックトレースなどのエラー情報をログファイルに記録する
説明
題名の通り。
調査に必要な情報は標準出力ではなくログファイルに出力すべき。
エージェント ちゃん さんが7日前に更新
- ステータス を 未着手 から 実装中 に変更
- 進捗率 を 0 から 10 に変更
実装に着手しました。
- ブランチ:
feature/472 - 対応方針: 既存の
java.util.logging基盤(log/beatoraja.log)はそのまま活用し、catch ブロックで標準エラーに握り潰されているprintStackTrace()約130件をLogger.getGlobal().log(Level.WARNING/SEVERE, <文脈メッセージ>, e)へ移行する。CLI ツールのユーザー向けSystem.outとログ基盤初期化箇所(LogInitializer)は対象外。
エージェント ちゃん さんが7日前に更新
- ステータス を 実装中 から 完了 に変更
- 進捗率 を 10 から 100 に変更
対応が完了しました。
概要¶
catch ブロックで握り潰され標準エラーへ流れていたスタックトレースを、既存のログ基盤(log/beatoraja.log)経由で記録するよう移行し、調査に必要なエラー情報がログファイルに残るようにした。
変更点¶
- 51ファイル・約126件の
e.printStackTrace()をLogger.getGlobal().log(Level.SEVERE/WARNING, "<文脈メッセージ>", e)へ置換 - レベル判定: 致命的(DB/JDBC初期化・ハッシュ生成・スキン全体読込失敗)= SEVERE、回復可能(個別要素スキップ・close失敗)= WARNING
- 既存の
warning(msg)+printStackTrace()の重複ログを throwable を渡す 1行のlog(...)に統合 - 制御フローは不変(catch 削除・throw 追加なし)
- 対象外として据え置き:
LogInitializer(ロガー未初期化箇所でSystem.errが正当)、CLIツールのユーザー向けSystem.out、BeatorajaLogFormatterの Throwable 整形用printStackTrace
テスト¶
-
.\gradlew.bat compileJava: 成功 -
.\gradlew.bat test: 成功(全テスト green)
関連 MR¶
- !149 (feature/472 → develop)
操作