何回か書いたログの設計方針に関して再度復習。
ログで大事なことを再度復習
- DEBUG(SQLやパラメータ情報など詳細な情報までだす)、INFO(メソッドの詳細情報、開始と終了)、WARNING(処理は止めないが、警告として知らせたい情報。処理が完全ではないなど)、ERROR(異常終了する際の告知。メールや別のチャネルなどで知らせる必要があるかも)、FATAL(例外エラーなど。ERRORはif文などでキャッチできるエラー。FATALはExceptionなど)
- SQLやパラメータは重要度によってINFOに格上げしてもいいかも(InパラメータのJSONのパラメータなどを入れておくとデバッグが楽)
- クラス名、メソッド、行数、時間入れておくと楽。時間はマスト
- 面倒でなければメソッドのInパラメータは吐いた方が良い(追跡が楽)
- ログにだす情報は改行しないほうがいいかも・・。(特にSQL)不必要に改行を入れると非常にみにくい
- 多くなりすぎなければ正常系の処理が終わった後につけるのも良い。
- ログには記号+番号などを入れておくと検索が楽。ログが出た場所をすぐに特定できるために。
- HTMLデータやパラメータが多すぎるものときなどは文字制限を入れないとログデータ自体が多すぎることがあるので必要に応じて少なくした方が良いかも・・
- ログに出す詳細情報はInパラメーター、キー系のID情報、エラーメッセージ。
- エラーメッセージはstackTraceなどがはっきりと出ることを確認しておくこと
- 共通度が高いメソッドなどはログが大量に出て他の部分を邪魔することもあるので出し分け要注意。
- 複数のバッチが入るときはチャネルを分けると処理が混ざらないので見やすいかも。
- 集計することがあるのでキー系の情報がはっきりと拾えるようにしておくこと