7

ご存知のとおり、イベントログクラスを使用してイベントログを書き込むことはできますが、イベントログにカテゴリ名を書き込む方法について混乱しています。カテゴリパラメータを提供します。たとえば、WriteEntryのタイプの1つは次のとおりです。

public void WriteEntry(
string message,
EventLogEntryType type,
int eventID,
short category


そしてそれは私のログに番号を表示するだけです。カテゴリのタイプが文字列ではなく短いのはなぜですか?イベントビューアにカテゴリ名を表示するにはどうすればよいですか?ありがとう!ちなみに、カスタムのCategoryMessageFileは作成しません。

4

2 に答える 2

6

特定のカテゴリでイベントログエントリを作成できますが、イベントログに登録されている文字列リソーステーブルを使用して、追加のネイティブdllを作成する必要があります。これにより、展開がさらに複雑になります。現在、インストール中に行う必要があります

  1. 新しいイベントログソースを作成するには、新しいソースを作成するたびに管理者権限が必要です。したがって、最初のインストール時に一度にインストールできるように、すべてのソースを収集することをお勧めします。
  2. 提供するカテゴリIDごとに文字列リソーステーブルを含むネイティブdllを作成します。
  3. カテゴリdllをレジストリに登録して、Windowsに認識させます。

これで、オーバーロードを使用して、特定のカテゴリのイベントログメッセージを書き込むことができます。

あなたの問題を正確に説明している非常に優れたDr.JobsJournalの記事があります。

于 2012-05-06T08:53:17.127 に答える
0

WriteEntryを使用しないでください。セキュリティ例外が発生します。インストール後に管理者権限は必要ありません。

代わりにWriteEventを使用してください:https ://security.stackexchange.com/q/15857/396

于 2012-06-08T23:01:26.717 に答える