知識マップ: Windowsイベントログ・ETW入門 ── 業務アプリのログをOS標準の仕組みに乗せる
記事「Windowsイベントログ・ETW入門 ── 業務アプリのログをOS標準の仕組みに乗せる」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
業務アプリのログは、開発者が詳細を追うファイルログ、運用担当者やOS標準ツールが異常に気づくためのWindowsイベントログ、性能調査や不具合解析のために購読者がいるときだけ記録されるETWという役割分担で使い分ける。Windowsイベントログへの書き込みは事前に登録されたイベントソースを前提とし、その登録には管理者権限が要る一方、登録済みソースへの書き込みは標準ユーザーでも行える。.NETのETW計装はEventSourceクラスで独自プロバイダーを定義し、dotnet-traceはETWそのものではなくクロスプラットフォームなEventPipe経由でこれを収集する。ILoggerを使えば、同じログ呼び出しをAddEventLogでイベントログへ、ファイルシンクへ、EventSourceLoggerProvider経由でETWへとまとめて振り分けられる。
flowchart LR
accTitle: Windowsイベントログ・ETW入門の知識マップ
accDescr: ファイルログ・イベントログ・ETWが役割分担の関係にあること、イベントログの利用がイベントソースの登録を前提とすること、ETWがEventSourceとEventPipe・dotnet-traceを介して収集されること、ILoggerが複数のプロバイダーへ同じログ呼び出しを振り分ける仕組みを示す図
windows_event_log["Windowsイベントログ"]
etw["ETW(Event Tracing for Windows)"]
eventlog_source["イベントソース"]
admin_rights["管理者権限"]
ilogger_addeventlog["ILogger + AddEventLogプロバイダー"]
ilogger_abstraction[".NETのILogger"]
structured_logging_template["構造化ログのメッセージテンプレート"]
file_log["ファイルログ"]
event_viewer["イベントビューアー"]
wevtutil["wevtutil"]
get_winevent["Get-WinEvent"]
eventsource_class[".NETのEventSourceクラス"]
dotnet_trace["dotnet-trace"]
eventpipe["EventPipe"]
dotnet[".NET(Core以降)"]
dotnet_framework[".NET Framework"]
windows_event_log -.->|"前提とする"| eventlog_source
eventlog_source -->|"前提とする"| admin_rights
ilogger_addeventlog -->|"利用する"| windows_event_log
ilogger_addeventlog -->|"前提とする"| eventlog_source
ilogger_abstraction -->|"利用する"| structured_logging_template
ilogger_abstraction -.->|"利用する"| ilogger_addeventlog
ilogger_abstraction -.->|"利用する"| file_log
ilogger_abstraction -.->|"利用する"| etw
windows_event_log -->|"で確認できる"| event_viewer
windows_event_log -->|"で確認できる"| wevtutil
windows_event_log -->|"で確認できる"| get_winevent
etw -.->|"利用する"| eventsource_class
dotnet_trace -->|"利用する"| eventpipe
eventpipe -->|"利用する"| eventsource_class
etw -.->|"前提とする"| admin_rights
dotnet -.->|"前提とする"| windows_event_log
dotnet_framework -->|"両立しない"| eventpipe
dotnet -->|"利用する"| eventpipe
概念間の関係(全18件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- Windowsイベントログはイベントソースを前提とします。
- イベントソースは管理者権限を前提とします。
- ILogger + AddEventLogプロバイダーはWindowsイベントログを利用します。
- ILogger + AddEventLogプロバイダーはイベントソースを前提とします。
- .NETのILoggerは構造化ログのメッセージテンプレートを利用します。
- .NETのILoggerはILogger + AddEventLogプロバイダーを利用します。
- .NETのILoggerはファイルログを利用します。
- .NETのILoggerはETW(Event Tracing for Windows)を利用します。
- Windowsイベントログはイベントビューアーで確認できます。
- Windowsイベントログはwevtutilで確認できます。
- WindowsイベントログはGet-WinEventで確認できます。
- ETW(Event Tracing for Windows)は.NETのEventSourceクラスを利用します。
- dotnet-traceはEventPipeを利用します。
- EventPipeは.NETのEventSourceクラスを利用します。
- ETW(Event Tracing for Windows)は管理者権限を前提とします。
- .NET(Core以降)はWindowsイベントログを前提とします。
- .NET FrameworkはEventPipeと両立しません。
- .NET(Core以降)はEventPipeを利用します。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。