2012-09-12 80 views
8

我想查詢遠程計算機上的應用程序事件日誌,並訴諸使用EventLogReader而不是EventLog,因爲它需要很長時間才能找到EventLog所需的事件。但是,即使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

再次事件查看器來救援。是否有一個或多個'entry.EventData'屬性(可稱爲「數據」的可枚舉或僅有多個命名屬性)?我在黑暗中刺了一下,但是你也可以打開eventvwr.msc,打開一個隨機事件,看看XML視圖。 –

+0

@lc。我只是想通了,併發布了答案。謝謝你的幫助。 –

+0

是的,這太糟糕了,在MSDN上沒有這方面的文檔。對不起,只在黑暗中刺傷:-P –

回答

12

嘆息......這是FormatDescription()方法。我沒有看到它,因爲我只看着這些房產。

+1

大聲笑,謝謝。我正在尋找.Message或.Data。對於我的生活,我不明白爲什麼EventLog不支持LINQ。 –