2009-05-06 16 views
3

WindowsイベントログにXMLデータを書き込むにはどうすればよいですか?WindowsイベントログにXMLデータを入力する

XMLをWindowsのイベントログに挿入する方法があることに気がつきました。その効果は、Windows VistaのGeneralビューで説明メッセージを取得することです。 XMLデータはDetailsビューに表示されます。

ラジオボタンFriendlyを選択すると、Event Dataノードの下に表示されます。 XMLビューを選択すると、XMLが表示されます。

EventLog.WriteEntry()メソッドのrawDataバイト配列が私にこれを可能にすると考えました。私はそれにXMLWriterの出力を詰めてみました。これはイベントログにデータを入れますが、XMLではなくバイナリとして表示されます。

答えて

3

私が誤っていない限り、Crimson/Vistaイベントログにxmlを書き込むには、適切なチャネルとイベントを与えるマニフェストを作成して登録する必要があります。次に、Message Compiler (mc.exe) in the WindowsSDKを使用してマニフェストをコンパイルする必要があります。

次に、C#からログを記録する場合は、イベントロギングAPIをラップするマネージプロバイダを作成することになります。これはPInvokeを使用してAPIを取得する必要があるため、少し難しくなります。

この全プロセスを実行する方法についてのブログ投稿がありますhere

2

サンプルはWindows SDK (ver 6.1)で、EventProviderと呼ばれています。
新しいイベントログAPI(AKA crimson)を使用するC#プロバイダー(Vistaが必要で、動作する必要があります)。
このサンプルは、カスタムデータを追加する方法を示しています(その他の金額)。

2

.Net 4.5の場合新しいEventSourceを調べると、自動的にマニフェストの生成もサポートされます。

関連する問題