Programming Field

ログファイルからエラー抽出して通知 - Windowsコマンド実用例

サーバーやアプリケーションのログファイルから、「error」などのキーワードを含む行を抽出し、即座に確認・共有できる形式に整えるバッチスクリプトの例です。重要な異常ログを見逃さずに、素早く対応するために役立ちます。

使用コマンド

  • Findstr - 特定の文字列を含む行を抽出
  • Type - テキストファイルの内容を表示
  • Clip - 標準出力をクリップボードにコピー
  • Echo - 状況表示やログ用出力

バッチファイルの例

@echo off
setlocal
set LOGFILE=C:\logs\server.log
set OUTFILE=C:\logs\error_extract.txt

findstr /i "error" "%LOGFILE%" > "%OUTFILE%"
if exist "%OUTFILE%" (
  type "%OUTFILE%" | clip
  echo エラー内容をクリップボードにコピーしました。
) else (
  echo エラーは検出されませんでした。
)

補足事項

  • ログファイルの文字コードがUTF-8 BOM付きの場合、findstr で正しく検索できないことがあります。その場合、Chcp でコードページを 65001 に切り替えることである程度検索することができる場合があります。(詳細は Chcp および Findstr のサンプルをご確認ください。)
  • ログが巨大な場合は findstr と組み合わせて特定のパターンや範囲に絞る工夫も可能です。
  • clip を使えば、抽出結果をメモ帳やチャットにそのまま貼り付けて共有できます。

応用例

  • 検索文字列を調整することで、特定の時間帯やIDを含むログに限定して抽出できます。(例:findstr "error 2025-04-13")
  • この処理を定期タスク化し、毎日朝に最新ログをチェックするよう設定することもできます。(その際には Schtasks /Create が利用できます。)

関連項目