【こうぞうかろぎんぐ】

構造化ロギング とは?

💡 日記を箇条書きにしたら、あとで検索できるようになった
📌 このページのポイント
構造化ロギング:テキストログ vs JSONログ フリーテキストログ 2026-04-13 ERROR ユーザーが見つかりません 2026-04-13 INFO 処理完了 elapsed=23ms 検索・集計が困難 構造化 JSONログ(構造化) { "level": "ERROR", "user_id": 42, "elapsed_ms": 23 } フィールドで絞り込み可能 ログ集約基盤 Elasticsearch Datadog Cloud Logging クエリ・アラート・ダッシュボードが簡単に
フリーテキストログをJSONに構造化するとログ集約基盤で強力に活用できる
ひよこ ひよこ

ログって、エラーが起きたときに確認するやつだよね?

ペンギン先生 ペンギン先生

そうだよ。アプリの動きを記録しておくログのことだね。ただ、昔ながらのログって「2026-04-13 ERROR ユーザーが見つかりません」みたいな文章形式が多かったんだ

ひよこ ひよこ

それじゃダメなの?

ペンギン先生 ペンギン先生

人間が読む分にはいいんだけど、大量のログをプログラムで検索・集計しようとすると大変なんだよ。「ERRORが何件あったか」を数えるだけでも正規表現を書く必要があったり。構造化ロギングは、ログをJSONで書くことでこの問題を解決するんだ

ひよこ ひよこ

JSONで書くとどう変わるの?

ペンギン先生 ペンギン先生

{"timestamp":"2026-04-13T10:00:00Z","level":"ERROR","message":"ユーザーが見つかりません","user_id":42} みたいに、フィールドごとにキーと値を持たせるんだよ。こうすると「user_idが42のERRORを全部見せて」みたいなクエリが一発で書けるんだ

ひよこ ひよこ

なるほど!検索しやすくなるんだね。でも毎回JSON書くの面倒じゃないの?

ペンギン先生 ペンギン先生

Winston(Node.js)やLogback(Java)、structlog(Python)みたいなライブラリを使えば、自動でJSON形式にしてくれるよ。コードは logger.info('message', {user_id: 42}) みたいに書くだけでOKだよ

ひよこ ひよこ

集めたログはどこで見るの?

ペンギン先生 ペンギン先生

ElasticsearchDatadog、Cloud Logging(GCP)みたいなログ集約基盤に送るんだ。構造化されてるから、ダッシュボードでグラフ化したり、特定条件でアラートを飛ばしたりも簡単にできるよ。オブザーバビリティの基礎になる大事な仕組みだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「構造化ロギング」って出てきたら「JSONで出力して機械で分析できるログ」と思えればだいたいOK!
📖 おまけ:英語の意味
「Structured Logging」 = 構造化されたログ出力
💬 structured(構造化された)+ logging(ログ記録)の組み合わせ。フリーテキストのログを「構造」として扱えるようにした手法だよ
← 用語集にもどる