カテゴリ: Rails 更新日: 2026/03/29

Railsログ監視入門|logrageで学ぶJSON構造化ログとカスタムフィールド追加の基本

lograge入門:JSON構造化ログ・カスタムフィールド追加のベストプラクティス
lograge入門:JSON構造化ログ・カスタムフィールド追加のベストプラクティス

先生と生徒の会話形式で理解しよう

生徒

「Railsって、エラーが起きたときにどうやって原因を調べるんですか?」

先生

「Railsでは“ログ”という記録を見て、アプリの動きを確認します。そのログを見やすく整理してくれるのがlogrageです。」

生徒

「ログって文字がいっぱいで難しそうです……。」

先生

「だからこそ、JSON形式で整理できるlogrageを使うと、初心者でも状況が分かりやすくなるんですよ。」

1. Railsにおけるログとは何か

1. Railsにおけるログとは何か
1. Railsにおけるログとは何か

Railsのログとは、アプリケーションの中で「いつ」「誰が」「何をしたか」を文字として記録したものです。例えば、Webサイトにアクセスした履歴や、ボタンを押した結果、エラーが起きた瞬間などが自動で保存されます。ログは、後から問題を振り返るための日記帳のような存在です。

プログラミング未経験の方でも、日記を思い浮かべると分かりやすいです。Railsは人の代わりに、毎日欠かさず日記を書いてくれます。その日記を読みやすく整えてくれる仕組みがlogrageです。

Railsの仕組みを根本から理解し、現場で通用する 「設計のセオリー」を身につけたいならこの一冊。 MVC、テスト、Docker対応など、実践的な内容が凝縮されています。

パーフェクト Ruby on RailsをAmazonで見る

※ Amazon広告リンク

2. logrageとは何かをやさしく理解する

2. logrageとは何かをやさしく理解する
2. logrageとは何かをやさしく理解する

lograge(ログレイジ)は、Rails標準のログをシンプルに整形してくれるライブラリです。通常のRailsログは情報が多く、初心者にはどこを見れば良いのか迷ってしまいます。logrageを使うと、重要な情報だけを一行にまとめて表示できます。

特に重要なのがJSON構造化ログです。JSONとは、項目ごとに整理されたデータの形で、機械にも人にも読みやすい形式です。

3. logrageの基本設定と導入イメージ

3. logrageの基本設定と導入イメージ
3. logrageの基本設定と導入イメージ

logrageを使うには、Railsアプリに設定を追加します。設定といっても、決まった書き方をコピーするだけなので難しくありません。Railsは「設定ファイルに書いた通りに動く」仕組みです。


# config/application.rb
config.lograge.enabled = true

この一行を書くだけで、Railsのログ表示がlograge形式に切り替わります。スイッチを入れる感覚で覚えておくと安心です。

4. JSON構造化ログとは何が便利なのか

4. JSON構造化ログとは何が便利なのか
4. JSON構造化ログとは何が便利なのか

JSON構造化ログとは、ログを「名前」と「内容」の組み合わせで記録する方法です。例えば、「アクセスしたURL」「処理にかかった時間」などが、それぞれ整理されます。


config.lograge.formatter = Lograge::Formatters::Json.new

この設定を追加すると、ログがJSON形式で出力されます。バラバラの文章ではなく、整理された表を見るような感覚になるため、後から調べるときにとても楽になります。

5. カスタムフィールドとは何か

5. カスタムフィールドとは何か
5. カスタムフィールドとは何か

カスタムフィールドとは、「自分で追加できるメモ欄」のようなものです。Rails標準のログには含まれていない情報でも、必要であれば自由に追加できます。

例えば「ログインしているユーザーのID」や「操作された画面名」などを記録すると、原因調査が一気に簡単になります。


config.lograge.custom_options = lambda do |event|
  {
    time: event.time,
    path: event.payload[:path]
  }
end

6. カスタムフィールド追加のベストプラクティス

6. カスタムフィールド追加のベストプラクティス
6. カスタムフィールド追加のベストプラクティス

カスタムフィールドを追加するときは、「あとで自分が読む」ことを意識するのが大切です。必要以上に情報を増やすと、逆に分かりにくくなります。

おすすめは、「誰の操作か」「どの画面か」「どれくらい時間がかかったか」の三点です。これは初心者でも理解しやすく、実務でもよく使われます。


config.lograge.custom_options = lambda do |event|
  {
    user_id: event.payload[:user_id],
    controller: event.payload[:controller],
    action: event.payload[:action]
  }
end

7. logrageと監視・APMの関係

7. logrageと監視・APMの関係
7. logrageと監視・APMの関係

logrageで整理されたログは、監視ツールやAPMと相性が良いです。APMとは、アプリの動きを自動で見守る仕組みのことです。JSON形式のログは、こうしたツールが情報を正確に読み取るための共通言語になります。

つまりlogrageは、人にも機械にも優しいログを作るための土台と言えます。

8. 初心者がlogrageでつまずきやすいポイント

8. 初心者がlogrageでつまずきやすいポイント
8. 初心者がlogrageでつまずきやすいポイント

初心者がよく困るのは、「ログが出ているけど意味が分からない」という状態です。その場合は、項目を減らして一つずつ確認するのがおすすめです。

最初はJSONの形に慣れることが大切です。難しく感じても、何度か見ているうちに「これは時間」「これはURL」と自然に読めるようになります。

まとめ

まとめ
まとめ

Railsログ監視とlogrageの全体像を振り返る

ここまで、Railsにおけるログの役割から始まり、logrageを使ったログ整理の考え方、JSON構造化ログの仕組み、そしてカスタムフィールドの追加方法までを一通り学んできました。Railsのログは、アプリケーションの内部で何が起きているのかを後から確認するための非常に重要な情報源です。エラー調査や不具合対応、性能改善を行う際、ログを正しく読めるかどうかで作業効率は大きく変わります。

しかし、Rails標準のログは情報量が多く、初心者にとってはどこを見れば良いのか分かりにくいという課題があります。そこで活躍するのがlogrageです。logrageを導入することで、ログを一行にまとめ、重要な情報だけを抽出して確認できるようになります。これは、ログ監視や運用を学び始めたばかりの方にとって、大きな助けになります。

JSON構造化ログがもたらす理解のしやすさ

logrageの大きな特徴であるJSON構造化ログは、「項目名」と「値」をセットで管理する形式です。時間、パス、コントローラ名、アクション名などが整理されて出力されるため、文章のログを目で追う必要がなくなります。これは、人が読む場合だけでなく、監視ツールや解析ツールがログを自動処理する際にも非常に重要です。

JSON形式に慣れてくると、「このキーは何を意味しているのか」「この値が異常な場合はどこを疑えば良いのか」といった判断が自然にできるようになります。Railsのログ監視において、JSON構造化ログは基本スキルと言っても過言ではありません。

カスタムフィールドで実務に強いログを作る

カスタムフィールドは、logrageを使う上で特に重要な考え方です。Rails標準では記録されない情報でも、自分で定義してログに残すことができます。例えば、ログイン中のユーザーIDや、どの画面から操作されたのかといった情報は、障害対応時に非常に役立ちます。

ただし、何でもかんでも記録すれば良いわけではありません。ログは「あとで読むための記録」であるため、必要最低限で意味が分かる内容に絞ることが大切です。誰が、どこで、何をしたのかが分かるログを意識することで、実務でも使いやすいログ設計になります。

まとめとしてのサンプル設定例

最後に、これまで学んだ内容を踏まえたlograge設定のサンプルを振り返ります。以下のように設定することで、JSON形式で分かりやすく、かつ実務で役立つログを出力できます。


# config/application.rb
config.lograge.enabled = true
config.lograge.formatter = Lograge::Formatters::Json.new

config.lograge.custom_options = lambda do |event|
  {
    time: event.time,
    path: event.payload[:path],
    user_id: event.payload[:user_id],
    controller: event.payload[:controller],
    action: event.payload[:action]
  }
end

この設定により、Railsアプリケーションの挙動が一目で分かるログが出力されます。ログ監視を意識したRails開発を行うことで、トラブル発生時にも落ち着いて原因を追跡できるようになります。

先生と生徒の振り返り会話

生徒

「logrageを使うと、Railsのログがすごく見やすくなる理由が分かりました。今まで文字が多すぎて、読むのをあきらめていました。」

先生

「そうですね。logrageは、ログを見るハードルを下げてくれる存在です。特にJSON構造化ログは、慣れるととても便利ですよ。」

生徒

「カスタムフィールドも、必要な情報だけを残すのが大事なんですね。」

先生

「その通りです。ログはあとで自分や他の人が読むものです。誰が見ても状況が分かるログを意識すると、Rails開発が一段レベルアップします。」

生徒

「Railsのログ監視って難しそうだと思っていましたが、logrageがあると安心できます。」

先生

「最初は簡単な設定からで大丈夫です。少しずつログを読む習慣をつけていけば、自然と理解が深まりますよ。」

カテゴリの一覧へ
新着記事
New1
Rails
Railsのキャッシュを完全解説!初心者でもわかるフラグメントキャッシュとコレクションキャッシュ
New2
Ruby
Ruby配列の検索と取得を完全解説!index・rindex・include?・find・bsearch入門【初心者向け】
New3
Rails
Railsログ監視入門|logrageで学ぶJSON構造化ログとカスタムフィールド追加の基本
New4
Rails
RailsでSEOとメタタグ設定を完全ガイド!title・description・OGPをview_componentで管理する方法
人気記事
No.1
Java&Spring記事人気No1
Ruby
Rubyの真偽値とnilを徹底解説!初心者が知っておくべき判定ルールと安全な書き方
No.2
Java&Spring記事人気No2
Rails
RailsのCSRF対策を完全解説!authenticity_token・SameSite・APIモードまで初心者向けに理解
No.3
Java&Spring記事人気No3
Rails
RailsでXSSを防ぐ完全ガイド|ERB自動エスケープ・sanitize・Content Security Policy設定
No.4
Java&Spring記事人気No4
データベース
PostgreSQL配列型(Array)入門ガイド!初心者でもわかるデータベースの便利な使い方
No.5
Java&Spring記事人気No5
データベース
SQLのWHERE句とは?初心者でもわかる条件指定の基本を徹底解説
No.6
Java&Spring記事人気No6
データベース
Redis入門ガイド!初心者でもできるインストール方法と初期設定を徹底解説
No.7
Java&Spring記事人気No7
Rails
Railsコレクションキャッシュ完全入門|render collectionとcacheで一覧表示を高速化する方法
No.8
Java&Spring記事人気No8
データベース
データベース設計の要「主キー(プライマリキー)」とは?役割と正しい設計方法を初心者向けに徹底解説