2010-11-21 1 views
2

何らかの理由により、EventLogEntry.Categoryがカテゴリのテキストではなく数値を返します。それはCategoryNumberプロパティと同じものを返します。私はそれが起こらないと仮定しています。ここで何か間違っているのですか、EventLogEntryのカテゴリテキストを取得する方法がありますか?ここでEventLogEntry.Categoryからカテゴリテキストを取得する

エラーを再現するためにいくつかのコードは次のとおりである:「

Console.WriteLine(new EventLog("System").Entries[0].Category); 

これは、「なし」または「サービス状態イベント」(または任意の関連するカテゴリがあなたのためである)のようなものを書く必要がありますが、その代わりに書き込み(0)」となる。私がここで間違っていることに関する考えは?

+0

私はすべて同じ結果で、異なるマシンの数でこれを試してみました。 Categoryテキストは返されず、数字だけが返されます。 –

+0

これらのイベントのWindowsイベントビューア(eventvwr)は何を示していますか?カテゴリ名または番号? –

+0

イベントビューアに正しいカテゴリ名が表示されます。 –

答えて

1

これはAPIのバグです。私はそれがすぐに解決されるとは思わない。これは、Windows Vista以降のOSでのみ発生します。実際にXP、2000,2003などで正しく動作します。

しかし、別のアプローチがあります。これは、イベントログにプログラムでアクセスする低レベルのアプローチです。この技術はWindows Management Instrumentation(WMI)であり、.NETにはC#というインターフェースがあります。

は、これらのリンクをチェックアウト:

Windows Management Instrumentation (WMI) Tutorial

Monitoring Remote Log Remotely using WMI in C# and .NET

Reading Widsows Event Log

関連する問題