[PowerShell]ログファイルを監視する

Windows 11
スポンサーリンク

ログファイルの更新された内容をリアルタイムに監視する場合、UNIXでは「Tail」コマンドを使用しますが、今回はPowerShellを使ってApacheのログを監視するスクリプトを紹介します。

PowerShellは、Windowsで利用できるスクリプト言語で、Windows 10 でのバージョンは、Windows PowerShell 5.xです。

例として、Apacheのログファイルが、C:\MAMP\logs\access.logであった場合、

Get-Content -Wait -Tail 10 -Path "C:\MAMP\logs\access.log"

で、監視できます。

スポンサーリンク

Get-Content:(テキスト)ファイルの内容を参照する

オプション定義
-Wait1秒おきにファイルをチェックし、新たに追加された内容があるかどうかをチェックする
-Tail-Tail n(数字)ファイル末尾のn行分を表示させる
-Pathファイル名を指定する
Get-Contentオプション

Select-String:キーワードを含んだ行のみ表示

Get-Content -Wait -Tail 10 -Path "C:\MAMP\logs\access.log" | Select-String "Get"

ログでキーワード”Get”が含まれる行のみ表示します。

Get-Date:日付を取得します

Apacheの場合、access.2021-05-22.logのようにログファイル名に日付がつきます。その場合は、現在日付をフォーマットして指定します。

Get-Content -Wait -Tail 10 -Path ("C:\MAMP\logs\access." + (Get-Date -UFormat "%Y-%m-%d.log"))
指定子定義
%A曜日-フルネーム
%m月番号
%d月の日-2桁
%Y2桁形式の年
%R24時間軽s機の時間-(秒なし)
%Z協定世界時(UTC)からのタイムゾーンオフセット
では、では!

タイトルとURLをコピーしました