← 用語集一覧へ戻る

エラーログ

Error Log
development beginner
プログラムで起きたエラーについて、いつ・どこで・何が起きたかを記録した履歴のこと。
エラーログ (Error Log)

概要(サマリー)

プログラムで起きたエラーについて、いつ・どこで・何が起きたかを記録した履歴のこと。

プログラムが止まったり、想定外の動作をしたりしたとき、システムはその状況を記録として残すことがある。
たとえば「どのファイルの何行目で失敗したか」「どんな種類のエラーだったか」「いつ起きたか」といった情報が含まれることが多い。
この記録がエラーログである。

いわば、システムが残した「トラブルの記録メモ」であり、原因を調べるための重要な手がかりになる。
初心者にとっては意味不明な英語の羅列に見えやすいが、焦らず読むと、問題の場所を絞り込むヒントがたくさん入っている。

詳細解説

エラーログ(Error Log)とは、プログラムやシステムで起きたエラーの内容を記録したログのことである。
ここでいうログとは、「何が起きたかを時系列で残した記録」のことを指す。

プログラムは、うまく動かなかったときに何も痕跡を残さないと、原因を調べるのが非常に難しくなる。
そこで多くのシステムでは、

  • いつ
  • どこで
  • どんなエラーが
  • どんな状況で起きたか

を記録する。
その中でも、特にエラーに関する記録がエラーログである。

なぜエラーログが必要なのか

たとえば、ユーザーから「さっき保存できませんでした」と言われても、それだけでは原因が分からないことが多い。
入力ミスなのか、権限不足なのか、通信失敗なのか、サーバー障害なのか、見た目だけでは判断できないからである。

そこでエラーログがあると、

  • どの処理で止まったか
  • どんなエラー名だったか
  • どのファイル・行番号で起きたか
  • その時刻はいつか

などを確認できる。
つまりエラーログは、不具合調査のための重要な証拠なのである。

どんなイメージで考えればよいか

初心者向けには、次のようなたとえがわかりやすい。

トラブルメモ

システムが止まったり失敗したりしたときに、「ここでこういう理由で問題が起きました」と書き残したメモのようなもの。

事故報告書

事故が起きたときに、いつ・どこで・何が起きたかを記録する報告書に近い。

防犯カメラの記録

実際の画面だけでは分からないことも、記録を見返すと原因の手がかりが見つかる。
エラーログも、問題発生時の記録として同じような役割を持つ。

エラーログには何が書かれるのか

エラーログの内容は環境によって違うが、よく含まれる情報は次のようなものだ。

  • エラーが起きた日時
  • エラーの種類
  • エラーメッセージ
  • 該当ファイル名
  • 行番号
  • 実行中の処理情報
  • スタックトレース
  • リクエスト情報やURL

初心者にとって特に重要なのは、

  • エラー名
  • ファイル名
  • 行番号
  • メッセージ本文

の4つであることが多い。

スタックトレースとは

エラーログの中でよく出てくるのが スタックトレース である。
これは、「どの関数や処理の流れを通って、そのエラーにたどり着いたか」を示す履歴である。

初心者向けには、
エラーに至るまでの足あと
と考えるとわかりやすい。

たとえば、ボタンを押したあとに

  1. API呼び出し関数
  2. データ整形関数
  3. 保存関数

の順に進み、その最後で失敗したなら、その流れがエラーログに出ることがある。
これを見ると、単に「失敗した」だけでなく、「どの道順でそこへ行ったのか」が分かる。

どこに表示されるのか

エラーログは、環境によって出る場所が違う。

1. ターミナル

ローカルでサーバーやスクリプトを動かしているとき、黒い画面に表示されることがある。

2. ブラウザの開発者ツール

JavaScriptエラーなどは、ブラウザのコンソールに出ることが多い。

3. サーバー上のログファイル

本番環境では、サーバー内のログファイルに記録されることが多い。

4. フレームワーク専用のログファイル

Laravel、Symfony、WordPressのプラグイン、Node.js系ツールなどが独自にログを持つこともある。

つまり、エラーログは1か所だけにあるとは限らず、
フロントエンドバックエンド・サーバーごとに出る場所が違う
ことがある。

エラーメッセージとの違い

初心者は「エラーメッセージ」と「エラーログ」を同じものだと思いやすいが、少し違う。

エラーメッセージ

その場で表示されるエラー文そのもの。
例: File not found

エラーログ

そのエラーに関する記録全体。
日時、場所、詳細情報、スタックトレースなども含む。

つまり、

  • エラーメッセージ = 一言の内容
  • エラーログ = その周辺情報も含めた記録

という関係である。

デバッグとの関係

エラーログは、デバッグ において非常に重要である。
デバッグは「原因を調べて直す作業」だが、その調査の出発点としてエラーログが役立つことが多い。

たとえば、コードが動かないときに感覚で全部書き直すのではなく、

  • どのログが出ているか
  • どの行で止まっているか
  • どの種類のエラーか

を確認すれば、原因をかなり絞りやすくなる。

つまりエラーログは、デバッグの地図やヒント集のようなものである。

エラーログの読み方の基本

初心者は、エラーログを最初から全部理解しようとしなくてよい。
まずは次の順番で見るとよい。

1. エラー名を見る

何系の問題なのかをざっくり把握する。

2. メッセージ本文を見る

何が足りないのか、何が不正なのかを読む。

3. ファイル名と行番号を見る

どこで起きたのかを確認する。

4. 直前の操作を思い出す

何をしたときに起きたかを確認する。

5. 必要ならスタックトレースを見る

流れを詳しく追う。

これだけでも、かなり原因を絞り込みやすくなる。

よくあるエラーログの例

たとえば次のようなものがある。

ReferenceError: userName is not defined

これは、userName という変数が定義されていないのに使われた可能性を示す。

File not found

これは、必要なファイルが見つからなかったことを示す。

Permission denied

これは、権限不足で操作できなかった可能性が高い。

初心者向けには、まず
英語を全部訳そうとするより、「何が足りないか」「どこで起きたか」を探す
意識が大切である。

AI時代のエラーログの使い方

AIコーディングでは、秘密情報を伏せたうえでエラーログをAIへ渡すことが非常に有効である。
なぜなら、AIはエラーメッセージやスタックトレースから、原因候補をかなり絞れることが多いからである。

たとえばAIへ渡すときは、

  • 秘密情報を伏せたうえで、必要な範囲のエラーログ
  • 何をしたときに起きたか
  • 関連コード
  • 期待していた動作

を一緒に出すと精度が上がりやすい。

つまりエラーログは、
AIに状況を正しく伝えるための非常に強いコンテキスト
でもある。

ただし秘密情報には注意

エラーログは便利だが、そのまま外へ貼ると危険な場合もある。
ログの中には、環境によって

などが含まれることがある。

そのため、外部へ共有するときや公開の場へ貼るときは、必要に応じて伏せ字にした方がよい。
特に本番環境のログは、そのまま公開しない方が安全である。

エラーログが出ないこともある

初心者は「ログが出ていないから正常」と思いやすいが、そうとは限らない。
設定によっては表示されないだけだったり、別の場所に保存されていたりすることがある。

たとえば、

  • 画面には何も出ない
  • でもサーバーログには記録されている
  • ブラウザには出ないがターミナルには出ている

ということもある。

そのため、問題が起きたときは
どこにログが出る設定なのか
を意識することが大切である。

エラーログのメリット

1. 原因調査がしやすい

感覚ではなく、記録をもとに調べられる。

2. 再現しなくても手がかりが残る

一瞬だけ起きた問題でも、ログが残っていれば追いやすい。

3. AIに相談しやすい

具体的な情報として渡せる。

4. 問題発生時刻が分かる

いつ起きたかを追えるため、他の操作や障害と照らし合わせやすい。

エラーログの注意点

1. 量が多いと読みづらい

全部を一度に理解しようとすると混乱しやすい。

2. 表面の文だけで決めつけない

出ているエラーが結果であって、本当の原因は少し前にあることもある。

3. ログを隠しすぎると調査しづらい

本番でユーザーには見せなくても、開発者向けには残す工夫が必要である。

4. 秘密情報を含むことがある

共有時には注意が必要である。

より詳しくAIに聞いてみよう

  • エラーログとは何かを、中学生でもわかるように説明してください。
  • エラーメッセージとエラーログの違いを初心者向けに整理してください。
  • エラーログの読み方を、見る順番つきで教えてください。
  • ブラウザ、ターミナル、サーバーでエラーログがどこに出るのか説明してください。
  • AIにエラーログを渡して相談するとき、何を一緒に伝えるとよいか教えてください。