ログの取り方で差がつく!エラー発見のためのログ出力ベストプラクティス

アプリケーションやWebシステムの開発・運用において、ログは「問題発見の第一歩」と言っても過言ではありません。しかし、闇雲にログを出力しても、必要な情報が埋もれてしまい、かえって原因特定が難しくなることも。この記事では、エラーの発見や原因調査を効率化するためのログ出力のベストプラクティスを具体例付きで解説します。

ログ出力の基本:INFOとERRORの違いを意識しよう

ログレベルは適切に使い分けることが重要です。以下のような分類をベースに、目的に応じた出力を心がけましょう。

一般的なログレベルの使い分け

レベル用途例
DEBUG変数の値、処理の分岐など詳細な情報
INFO正常処理の開始・完了など基本情報
WARN軽度の問題(再試行可能なエラーなど)
ERROR例外発生など明らかに異常な挙動
FATALアプリケーションを停止するような致命的な状態

例(Node.js / Winston):

import winston from 'winston';

const logger = winston.createLogger({
  level: 'info',
  transports: [
    new winston.transports.Console(),
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
  ],
});

logger.info('API処理を開始しました');
logger.error('データベース接続に失敗しました');

重要なコンテキスト情報を含める

ログには「いつ・どこで・なにが起こったか」を明確に記述することが重要です。以下のような情報は最低限含めましょう。

  • タイムスタンプ
  • モジュール名やファイル名
  • 関数名や処理中のステータス
  • ユーザーIDやリクエストID(トレーサビリティのため)

例(PHP / Laravel):

Log::error('ユーザー情報の取得に失敗', [
    'user_id' => $userId,
    'function' => __FUNCTION__,
    'file' => __FILE__,
]);

フロントエンドでも同様:

console.error('フォーム送信エラー', {
  page: location.pathname,
  userAgent: navigator.userAgent,
  payload: formData,
});

例外は握りつぶさない!スタックトレースを残そう

エラーの詳細がわからない「何かエラーが発生しました」ログは開発者を悩ませます。例外をキャッチした際はスタックトレースも含めてログ出力しましょう。

例(Python):

import logging
import traceback

try:
    risky_function()
except Exception as e:
    logging.error("処理中に例外が発生しました: %s", traceback.format_exc())

開発と本番でログレベル・出力先を切り替える

環境に応じてログの粒度や出力先を変えるのも大切です。

  • 開発環境:DEBUGレベルで詳細な情報を出力。コンソール表示も有効。
  • 本番環境:INFO〜ERRORレベルに絞り、ログファイルやログ管理サービスに送信。

例(Node.js / 環境変数で制御):

const level = process.env.NODE_ENV === 'production' ? 'info' : 'debug';
const logger = winston.createLogger({ level, ... });

フォーマットは統一し、検索しやすく

ログが散らかっていると分析に時間がかかります。以下のような工夫で、読みやすく・解析しやすいログ設計をしましょう。

  • JSON形式にする(ログ収集ツールでの活用を意識)
  • ログの各項目をキーで明示
  • ログ出力テンプレートを導入

例(JSON形式ログ):

{
  "timestamp": "2025-05-16T12:34:56Z",
  "level": "error",
  "message": "APIエラー",
  "request_id": "abc123",
  "user_id": 42,
  "stack": "Error at processRequest (/app/index.js:42:13)"
}

まとめ:ログは“見える化”の第一歩、運用力の差はここに出る

ただ「console.logしてるだけ」では、いざというときに何もわかりません。
本記事で紹介したベストプラクティスを意識すれば、エラー対応力・障害復旧スピード・開発効率のすべてがレベルアップします。
ログ設計から「プロの開発者」としての姿勢を見せましょう!

Contact

ウェブサイトの制作や運用に関わる
お悩みやご相談
お気軽にお問い合わせ下さい

ウェブサイトと一口に言っても、企業サイトやECサイト、ブログ、SNSなど、その“カタチ”は目的に応じてさまざまであり、構築方法や使用する技術も大きく異なります。株式会社コナックスでは、お客様のご要望やブランドの個性を丁寧に汲み取り、最適なウェブサイトの“カタチ”をご提案いたします。

デザイン、ユーザビリティ、SEO対策はもちろん、コンテンツ制作やマーケティング戦略に至るまで、あらゆるフェーズでお客様のビジネスに寄り添い、成果につながるウェブサイトづくりをサポートいたします。私たちは、ウェブサイトの公開をゴールではなくスタートと捉え、お客様のビジネスの成功に向けて共に伴走してまいります。