2012-09-12 27 views
8

リモートマシン上のアプリケーションイベントログを照会したいのですが、EventLogで必要なイベントを見つけるのに時間がかかるため、EventLogではなくEventLogReaderを使用しました。しかし、EventLogReaderを使うとイベントがはるかに高速になっても、必要な情報がこのオブジェクト、特にメッセージにどこにあるのかわかりません。EventLogReaderとEventRecord:メッセージはどこですか?

public static void Load() 
    { 
     string query = "*[System/Provider/@Name=\"SQLSERVERAGENT\"]"; 

     EventLogQuery elq = new EventLogQuery("Application", PathType.LogName, query); 
     elq.Session = new EventLogSession("x.x.x.x"); 
     EventLogReader elr = new EventLogReader(elq); 

     _logEntries = new List<SqlEventEntry>(); 

     EventRecord entry; 
     while ((entry = elr.ReadEvent()) != null) 
     { 
      var Message = entry.??? 
      // I want process the message in the event here, 
      // but I can't find a property anywhere that contains the message?? 
     } 
    } 
+0

再び救助のイベントビューア。 1つまたは複数の 'entry.EventData'プロパティ(' Data'という名前の列挙型か複数の名前付きプロパティのみ)がありますか?私は暗闇の中で少し刺すようですが、eventvwr.mscを開き、ランダムなイベントを開き、XMLビューを見ることもできます。 –

+0

@lc。私はちょうどそれを考え出し答えを投稿しました。ご協力いただきありがとうございます。 –

+0

ええ、それはMSDNでこれについてのドキュメントがあまりにも悪いです。暗闇の中でしか刺すだけで申し訳ありません: - P –

答えて

12

一口... FormatDescription()メソッドです。私はその物件だけを見ていたので、私はそれを見ませんでした。

+1

LOL、ありがとう。私は.Messageまたは.Dataも探していました。私の人生にとって、私はEventLogがLINQをサポートしていない理由を理解していません。 –

関連する問題