全力で遠回り さらに表示

ログとして出力したい値の候補一覧
アプリケーションを開発・運用する上で、ログはとても重要なものになります。
ログが整っていないと開発効率も落ちますし、バグの原因特定も困難になります。
では、整っているログってなに?というと、アプリケーションに依るのかなと思います。
ログって難しいですよね。
そこでログとして出力したい値の候補を箇条書きで残したいと思います。
- ログレベル(ERROR、NOTICE、INFO、DEBUGなど)
- 日時(年、月、日、時、分、秒、ミリ秒、タイムスタンプ)
- サーバ情報
- ホスト名
- プロセスID
- リクエスト情報
- URL
- リクエストIDなどパラメータ
- IPアドレス
- User-Agent
- セッションID
- その他、CookieなどHeader情報
- アプリケーション内部情報
- ユーザID
- ログ送出元情報
- ファイル名
- メソッド名
- ファイルの行数
- 保存したファイル名
- 開いたファイル名
- 生成した値
- 処理実行時間
- ABテストID
- その他、アプリケーション内部データ
- 外部リソースの連携情報
- 外部APIのリクエスト
- 外部APIのレスポンス
- DBに対するSQL
- DBのクエリ結果
- その他、独自メッセージ
ここらへんのデータがあれば、必要な情報は揃っているでしょう。
というか全部あると情報過多なので、この中から不要なものを削る流れになるかと思います。
※ログ設計に関しては割愛(そのうち別途記事を作成したい)と思います。
開発上確認したい値は、DEBUGレベルに
運用上確認したい値は、INFOレベルに
そういった具合になるかと思います。
また、ログフォーマットを整備することでトレース情報をごちゃごちゃ出さなくてもスムーズに問題を特定できるでしょう。