こんにちは。
プログラミングを始めて早1年半、現在も絶賛修行中のMです!
開発をしていると、テストやデバッグ等で見ることの多いシステムログ。
WindowsではWindows PowerShellを使用すると簡単にログ監視ができることもあり、
私自身かなり重宝しています。
そこで、今回はログ監視ができるコマンド+応用編をまとめました。
「macのリアルタイムログ監視(tail -f)的なことをWindowsでもやりたい!」
「ログで特定のキーワードが含まれる行だけGrepして表示させたい!」
等々、PowerShellのログ監視関連コマンドを調べている方はぜひとも読んでいってください。
目次
環境
Windows10 (64bit) / Windows PowerShell Version.5.1
※PowerShell Version.3.0以下の場合、後述の「- Tail」コマンドが使えないのでご注意。
事前にPowerShellバージョン確認コマンド「$PSVersionTable」で確認しておきましょうー。
ログを監視する
コマンド
以下のコマンドを打つだけで、ログの更新をリアルタイムで監視することができるようになります。
ログが更新される度に自動でダダーっと文字が流れてくるので、システムテスト時にかなり重宝してます。
例)「C:\test」 直下にある「test.log」を監視する
1 2 3 4 |
#ログ出力先のフォルダまで移動 cd C:\test\ #ログ監視実行 Get-Content -Wait -Tail 10 -Path "C:\test\test.log" |
解説
各コマンドの概要は以下の通り。
コマンド | 概要 |
Get-Content | ファイルの内容を参照する |
-Wait | ファイルの内容を常に監視する |
-Tail | ファイルの末尾を監視する -Tail n(数字) ファイル末尾のn行分を表示させる |
-Path | 参照先のパス、ファイル名を指定する。 -Path “パス” |
応用編
上記で説明したGet-Contentコマンドを応用すれば、以下のようなことも可能です。
プログラムのテスト、デバッグ等での利用を想定して、他にも役立ちそうなコマンドをまとめてみました!
Select-String:キーワードを含んだ行のみ表示させる
例)「test.log」で、キーワード「test」が含まれる行のみコンソールに表示させる。
1 2 3 4 |
#ログ出力先のフォルダまで移動 cd C:\test\ #実行 Get-Content -Wait -Tail 10 -Path "C:\test\test.log" | Select-String "test" |
Write-host:キーワードが出力される度に、特定の文を表示させる
例)「test.log」でキーワード「error」が出力された場合、コンソールに「エラーが発生しました」と表示させる。
1 2 3 4 |
#ログ出力先のフォルダまで移動 cd C:\test\ #実行 Get-Content -Wait -Tail 10 -Path "C:\test\test.log" | ForEach-Object {If($_ -like "*error*") { Write-host "エラーが発生しました"} } |
おまけ
Start-Transcript:コンソールに出力された内容をファイルに記録する
ちなみに、コンソールに表示された内容をファイルとして出力する場合は
以下のコマンドを使用すると可能です。
これにより、C:\Users\[ユーザー名]配下にあるファイル末尾に、
以降のコマンド実行・出力内容が全て記録されるようになります。
例)C:\Users\[ユーザー名]配下のファイル「test」にコンソール内容を出力する。
1 |
Start-Transcript test -append |
まとめ
以上、Windows PowerShellのログ監視系コマンドについてまとめました。ただ単にログをリアルタイムで監視することの他にも、複数のコマンドを組み合わせることで
様々に活用できそうです。
以上、ありがとうございましたー!
- 【React】フロントエンドのテストコードを書いてみよう【Vitest】 - 2024-04-30
- Simple AWS DeepRacer Reward Function Using Waypoints - 2023-12-19
- Restrict S3 Bucket Access from Specified Resource - 2023-12-16
- Expand Amazon EBS Volume on EC2 Instance without Downtime - 2023-09-28
- Monitor OpenSearch Status On EC2 with CloudWatch Alarm - 2023-07-02