【ろぐれべる】

ログレベル とは?

💡 ログの「重要度フィルター」
📌 このページのポイント
ログレベル ― 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(段階)でログの重要度を階層化する。フィルターのように不要なログを除外できるよ
← 用語集にもどる