ログファイルの更新された内容をリアルタイムに監視する場合、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:(テキスト)ファイルの内容を参照する
| オプション | 定義 |
| -Wait | 1秒おきにファイルをチェックし、新たに追加された内容があるかどうかをチェックする |
| -Tail | -Tail n(数字)ファイル末尾のn行分を表示させる |
| -Path | ファイル名を指定する |
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桁 |
| %Y | 2桁形式の年 |
| %R | 24時間軽s機の時間-(秒なし) |
| %Z | 協定世界時(UTC)からのタイムゾーンオフセット |
では、では!



コメント