[登録されているタグ]

[記事公開日]2025/12/20

PowerShellでログの末尾を追いかける|Get-Content -Tail -Wait の使い方

📝 はじめに

サーバーやアプリのトラブル調査中に、
「ログが今まさにどう出ているかをリアルタイムで確認したい」
「エラーが出た瞬間を見逃したくない」
と思ったことはありませんか?

そんなときに役立つのが
Get-Content -Tail -Wait です。
この記事では、PowerShellでログの末尾を追いかける基本から、
実務でよく使う応用パターンまでを丁寧に解説します。

こんな場面で便利

  • アプリやサービスのログをリアルタイム監視したい
  • エラーが出るタイミングを確認したい
  • Linuxの tail -f のようなことをPowerShellでやりたい

✅ このコマンドでできること(要点)

  • ファイルの末尾(最新行)だけを表示できる
  • ログに追記された内容をリアルタイムで表示できる
  • 指定した行数だけ遡って表示できる
  • Where-Object などと組み合わせてフィルタできる

✅ Get-Content -Tail -Wait でできること

Get-Content は、
ファイルの内容を読み取る基本コマンドです。

そこに -Tail を付けると
「末尾から指定行数だけ」読み込み、
-Wait を付けると
「ファイルの更新を待ち続ける」動作になります。

つまり、ログをリアルタイムで追いかけることができます。

🧩 基本構文

Get-Content "ログファイルのパス" -Tail 行数 -Wait

▶ 基本的な使い方(まずこれだけ)

🔹 ログの末尾をリアルタイムで表示する

Get-Content "C:\logs\app.log" -Wait

ファイルの末尾から読み取り、
新しく追加された行があれば自動で表示され続けます。

🔹 直近10行だけ表示してから追いかける

Get-Content "C:\logs\app.log" -Tail 10 -Wait

まず最新10行を表示し、
その後の追記分をリアルタイムで確認できます。

🛠 よく使われる指定例

🔹 エラーログだけを表示する

Get-Content "C:\logs\app.log" -Tail 50 -Wait |
Where-Object { $_ -match "ERROR" }

ログ全体ではなく、
エラー行だけを監視したいときに便利です。

🔹 複数キーワードを含む行を監視する

Get-Content "C:\logs\app.log" -Wait |
Where-Object { $_ -match "WARN|ERROR" }

💼 実務でよく使う使用例(応用)

🔹 サービス再起動時のログ確認

Get-Content "C:\logs\service.log" -Tail 20 -Wait

サービス再起動前後で、
どんなログが出るかを即座に確認できます。

🔹 日付付きログをリアルタイムでチェック

Get-Content "C:\logs\app.log" -Wait |
ForEach-Object {
  "$(Get-Date -Format 'HH:mm:ss') $_"
}
組み合わせ例

  • Where-Object:特定ログだけ抽出
  • -match:キーワード検索
  • ForEach-Object:表示加工

🧩 よくある勘違い・つまずきポイント

  • -Wait は自動で終了しない(Ctrl + C で停止)
  • ログファイルが存在しないとエラーになる
  • 非常に大きなログでは最初の読み込みに時間がかかる
  • バイナリファイルには使えない

🔄 cmdとの違いについて

cmd には Linux の tail -f のような
標準コマンドがありません。
PowerShellの Get-Content -Wait を使うことで、
同等のログ監視が可能になります。

⚠ エラー・うまく動かないときの確認ポイント

  • ログファイルのパスが正しいか
  • 読み取り権限があるか
  • ログが本当に追記されているか
  • 別プロセスがファイルをロックしていないか

🧠 注意点

-Wait を付けた状態では処理が終了しません。
スクリプト内で使う場合は、
別ウィンドウで実行する・条件付きで停止させるなどの工夫が必要です。

📌 まとめ

  • Get-Content -Tail -Wait でログをリアルタイム監視できる
  • -Tail で表示行数を調整できる
  • Where-Object と組み合わせると実務で強力
  • 停止は Ctrl + C

🔎 PowerShellコマンドを探す

  • ファイルを削除したい
  • 一覧を表示したい
  • 文字列を検索したい
  • 条件で絞り込みたい
  • エラーや実行できない原因を調べたい
  • ログをリアルタイムで確認したい
  • 文字列を検索しながらログを追いたい(-match)
Generic filters

サイト内検索(入力すると候補が出ます)

Generic filters


Generic filters

Generic filters

すべてを開く | すべてを閉じる
ページ上部へ戻る