突然ですが、IIS にカスタムHTTPモジュールを追加することができます。
チュートリアル : カスタム HTTP モジュールを作成および登録する
が、これ絡みでバグが起きたのでデバッグしようと思ったのですが、割と手段がなくてつらたんでした...
そこで、今回はこれをEventSource クラスによるログ出力を使ってデバッグしてみました。
この説明にあるとおり、ETWに書きこむためのクラスになります。ETWについては、以下のエントリがわかりやすく、続きを期待しているところです。
ちなみに、.NET Framework 4.5以降で使えます。そしてなによりのメリットが追加のライブラリが不要なことです。EventSourceクラスは継承してロギング用の専用のクラスを作成して使います。シンプルな例だとこんな感じになります。
あとは、これを使って適当なところにデバッグ処理を書くとETWに書きこんでくれます。
とりあえずprintf デバッグですが、ログのAPIを追加することも可能です。
で、ETWに書きこまれたログを確認するほうほうですが、SLABのOut-of-Processを使って、ConsoleSinkやFlatFileSinkを使う方法もありますし、
PerfView というツールを使う方法もあります。
意外とEventSourceの使いどころは多そうです。