【ろぎんぐ】

ロギング(ログ出力) とは?

最終更新:
💡 システムで起きたことを、後から調べられる記録にする

プログラムやシステムで起きた出来事、動作状況、エラーなどを記録すること。障害調査や監視に役立つ。記録する内容、出力先、保存期間、アクセス権は目的に合わせて設計する。

📌 このページのポイント
出来事を調べられる記録に アプリ 記録を作る 項目・レベル 形式を整える 出力先の例 標準出力 ファイル 収集サービス 構造化した記録の例 時刻:10:30 重要度:ERROR 出来事:接続失敗 秘密情報・保存量・保存期間を管理 JSONは構造化ログの表現方法の一例
アプリから記録を作り、目的に合う出力先で収集する例。TraceIdなどは任意の項目。
ひよこ ひよこ
console.logで出すのもロギング?
ペンギン先生 ペンギン先生
出来事を出力して記録するなら、ロギングに当たるよ。本番でも標準出力を実行環境が収集する構成がある。ただ表示するだけでなく、必要な記録を保存して調べられるかを考える。障害調査にはログ以外の監視情報も役立つんだ。
ひよこ ひよこ
ログレベルって何?
ペンギン先生 ペンギン先生
出来事の重要度などを段階で表すものだよ。例えばDEBUGは詳しい調査情報、INFOは出来事についての情報、WARNは警告、ERRORはエラーを表す。名前や段階は仕組みによって違うので、使うライブラリの定義と記録目的に合わせて設定するんだ。
ひよこ ひよこ
何でも記録した方が調べやすい?
ペンギン先生 ペンギン先生
必要な出来事と、調査に使う項目を決めよう。パスワードやアクセストークンなどの秘密をそのまま出力しないことが大事だよ。出力が多すぎると保存量や処理負荷も増える。閲覧できる人や保存期間を決め、記録が止まっていないかも確認するんだ。
ひよこ ひよこ
構造化ログはJSONのこと?
ペンギン先生 ペンギン先生
時刻、重要度、出来事、結果などを名前のある項目に分けた記録だよ。JSONは表現方法の一例で、構造化ログが必ずJSONというわけではない。項目の名前や値の型がそろうと、検索や集計で同じ意味の記録を扱いやすくなるんだ。
ひよこ ひよこ
複数のサーバーで起きたことはどう追うの?
ペンギン先生 ペンギン先生
記録を集約し、時刻や出来事、処理の識別情報などで照合するよ。OpenTelemetryのログにはTraceIdやSpanIdを入れる項目があり、対応する処理との関連付けに使える。ただし任意の項目なので、導入しただけで全ログに自動で付くとは限らない。収集できる情報と設定を確認するんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ロギング(ログ出力)」って出てきたら「システムで起きたことを、後から調べられる記録にする」と思えばだいたいOK!
📖 おまけ:英語の意味
「Logging」 = 記録を残すこと
💬 logは出来事などの記録、loggingは記録を残すこと。ここではプログラムやシステムで起きた出来事を扱うよ。

参考資料

← 用語集にもどる