エンジニアのみなさん、エラーログの山を前に、原因の特定に何時間も費やしていませんか?
どの関数が怪しいのか、設定ミスなのか、それともライブラリ由来か…とにかく切り分けが大変。
特に、複数の技術が絡んでいるプロジェクトでは、「ログの読み解き」がボトルネックになることも。
AIに初期解析を任せることで、エンジニアは本質的な対応に集中できるようになります。
本記事では、エラーログをAIで分析・要約し、原因の仮説や対応方針まで提示してくれるプロンプトをご紹介します。
プロンプトを使うメリット
このプロンプトを使うと、下記のメリットがあります。
- ログの要点を抽出して要約してくれる
- 考えうる原因・仮説を複数提示してくれる
- 優先して確認すべきファイルや関数にあたりをつけてくれる
- ログを共有しやすく整形してくれる(チーム内展開に◎)
こんな人におすすめ
- バックエンド/フルスタックエンジニア
- デバッグ作業に日々時間を取られている開発者
- コードベースが複雑でエラーの発生箇所を絞り込めない人
- 新人エンジニアをサポートしたいリードエンジニア教育担当者
利用シーン
- 大量のエラーログの初期解析(原因候補を知りたい)
- 開発中の新機能で出た謎のエラー解明
- 既存アプリのクラッシュレポート解析
- チーム内での不具合共有時の要約生成
プロンプト内容
下記の手順通りに画像生成AIツールに入力をしてください。
プロンプト(指示文)の使い方
- 生成AIツールにを開き、以下のプロンプトをコピー&ペーストする
- __欄を入力する
- 生成AIツールにメッセージ
実際のプロンプト
送信例を、内容に合わせて自由に変更・削除してお使いください。
今回はChatGPTへ送信した回答例を紹介します。
プロンプト内容例
#依頼
以下のエラーログ全体を読み取り、次の形式に沿って分析してください:
- ログの内容を要約し、重大なエラーの発生箇所・種類・頻度・依存ライブラリの影響範囲などを簡潔にまとめてください。
- 発生原因として考えられる技術的な仮説を3つ程度挙げ、それぞれに「根拠となるログの部分」や「過去の事例・代表的な原因」を添えてください。
- 優先的に確認すべきコードファイル、関数、設定ファイル、外部API、DBの可能性などを推定し、調査アクションの順序を提案してください。
- 使用されている言語やフレームワークの特性も踏まえ、再発防止のための設計改善・例外処理の強化方法を含めて具体的に提案してください。
- チーム内で共有しやすいよう、見出しや箇条書きを含むわかりやすい形式で出力してください。
※以下に貼り付けるログはNode.jsとReactを使用したWebアプリのサーバーログです。
(ここにエラーログを貼り付け)
Chat GPTの回答
【1. ログ内容の要約】
- 発生エラー:
TypeError: Cannot read properties of undefined (reading ‘userId’) - 発生箇所:
/api/order/create
エンドポイント → controller:orderController.js
line 42 - 影響範囲:
リクエストボディのバリデーション漏れにより、未定義のオブジェクトにアクセスしている - 頻度:
過去24時間で同一エラーが83回発生 - 関連ミドルウェア:
Express.js, body-parser, Sequelize, JWT認証
【2. 考えられる発生原因と根拠】
- バリデーション不足によるnullアクセス
-req.body.user
が存在しない場合にuser.userId
を参照 → 例外が発生
- ログには"Cannot read properties of undefined"
が明記されている - ミドルウェア順序の誤配置
-body-parser.json()
がルート定義より後に実行されている場合、req.body
が正しくパースされずundefined
に
- 初期化順が正しいか確認が必要 - JWT認証トークンの解析失敗による
req.user
の未設定
- ログに “jwt malformed” のエラーも同時発生 → 認証情報が処理されていない可能性
【3. 優先的に確認すべき項目と調査順序】
orderController.js
の対象行付近でreq.body
を直接参照していないかチェック- リクエストボディのスキーマバリデーション(Joi, Yup など)を導入しているか確認
app.js
でのbody-parser
や JWTミドルウェアの設定順序を確認- フロントエンド(React)側で送信しているPOSTリクエストのボディ構造を確認(特にaxiosの設定)
【4. 再発防止のための改善提案】
- 技術対応:
- すべてのAPI入力に対しJoiなどによるスキーマバリデーションを実装
-req.body.user?.userId
のように安全なアクセス構文を使用
- JWT認証ミドルウェアに失敗ログ・リトライ処理を追加 - 設計対応:
- 各APIの想定入力をドキュメント化し、エラーケースを含めた仕様定義を追加
- バグ再発のトレース容易化のため、ログレベルや構造化ロガー(winstonなど)の活用を推奨
【備考】
この分析結果は、ログの内容に基づいた仮説整理と初期対応案であり、最終的な原因特定・修正方針はコードベースの詳細確認とチーム合意に基づいて行ってください。
まとめ
エラーの山に立ち向かうのは、もう1人でなくていい。
AIに初動の仮説整理を任せれば、「とりあえず全部見る」から「絞って確認する」へシフトできます。
ぜひ活用してみてください!
<関連記事>エンジニア向けお役立ちプロンプト▼