イベントログ(.evtx)を採取する

もくじ
https://tera1707.com/entry/2022/02/06/144447

やりたいこと

作成したwindowsアプリのユーザーテスト中に、クラッシュしたとか謎の動きをしたとかがよくある。

そのとき、まずはイベントログを見ようという話になるので、イベントログをさっと採取できるようにバッチを用意しておきたい。

やったこと

wevtutilを使う。

具体的には、下記のコマンド。

wevtutil export-log System AppEvtLog.evtx

export-logが、イベントログをエクスポートせよ、という意味のパラメータ。

Systemが、イベントログの種類の指定。今回試した限り、下記があった。

種類 パラメータ
Applicationログ Application
システムログ System

AppEvtLog.evtxがファイル名。拡張子を.evtxにしておけば、何でもよい。

実際使うとき

きっと、私が仕事で実際に使うときは、システムログとアプリケーションログくらいしか見ないので、 下記のような感じで使えばよいと思う。

wevtutil export-log application AppEvtLog.evtx
wevtutil export-log System SystemEvtLog.evtx

さらに工夫するには

「参考」にも挙げている下記の記事に、クエリを使って「過去〇日間のイベントログ」といった採取の仕方も書かれている。
非常に参考になる。ありがとうございます。

https://qiita.com/koiwaiwaiko/items/9978a2d0565c265f5ad6

参考

wevtutil(msdocs)

https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/wevtutil

バッチファイルでWindowsのイベントログをエクスポートする
もっとこまかく、いろいろ試されている方の記事。とても参考になる。

https://qiita.com/koiwaiwaiko/items/9978a2d0565c265f5ad6

XPathクエリ

https://learn.microsoft.com/ja-jp/windows/win32/wes/consuming-events

XPathのほんとの仕様?はこっちっぽい(見る気しない)

https://www.w3.org/TR/xpath/