【ろぐれべる】

ログレベル とは?

最終更新:
💡 ログの「重要度フィルター」
📌 このページのポイント
ログレベル ― DEBUG〜FATALの階層 DEBUG 開発時の詳細情報(変数の値など) INFO 正常な動作の記録(起動完了、処理成功) WARN 注意が必要(非推奨API使用、リトライ発生) ERROR エラー発生(処理失敗、例外キャッチ) FATAL 致命的エラー(システム停止、復旧不能) 重要度 開発時 本番時
ログレベルのイメージ
ひよこ ひよこ
ログレベルにはどんな種類があるの?
ペンギン先生 ペンギン先生
一般的には5段階だよ。DEBUG(開発者向けの詳細情報)、INFO(正常動作の記録)、WARN(問題の予兆だが動作は継続)、ERROR(エラー発生、一部機能に影響)、FATAL(致命的エラー、アプリ停止)。ライブラリによってはTRACEという最も詳細なレベルもあるよ
ひよこ ひよこ
本番環境でDEBUGログを出すとダメなの?
ペンギン先生 ペンギン先生
DEBUGログは大量に出力されるから、本番環境で有効にするとディスクを圧迫してパフォーマンスも低下する。さらにDEBUGログにユーザーの個人情報が含まれていると情報漏洩リスクにもなる。本番ではINFO以上に設定して、障害調査時だけ一時的にDEBUGに下げるのが定番だよ
ひよこ ひよこ
WARNとERRORの使い分けは?
ペンギン先生 ペンギン先生
WARNは「今は動いてるけど放置するとマズい」状況。例えばディスク使用率80%超え、リトライで成功した通信など。ERRORは「処理が失敗した」状況。例えばDB接続エラー、外部API呼び出し失敗など。WARNは予防的に対処、ERRORは即座に対応が必要、という運用上の違いがあるよ
ひよこ ひよこ
ログの書き方で注意することは?
ペンギン先生 ペンギン先生
パスワードトークンをログに出さない、②ログメッセージに文脈情報(リクエストID、ユーザーIDなど)を含める、③構造化ログ(JSON)にすると後からの検索が楽、④ログの出力先をファイルだけでなくCloudWatch LogsやDatadogなどの集約基盤に送ると障害調査が捗るよ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ログレベル」って出てきたら「ログの重要度を段階分けする仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Log Level」 = ログの重要度段階
💬 Level(段階)でログの重要度を階層化する。フィルターのように不要なログを除外できるよ
← 用語集にもどる