2015-02-11 139 views
0

我正在處理大小超過2GB的evtx文件。 在我的C#程序,如果我做這樣的事情讀取evtx文件太大

EventLogReader reader = new EventLogReader("*[System/EventRecordID>0]"); 
for (EventRecord eventInstance = reader.ReadEvent(); eventInstance != null; eventInstance = reader.ReadEvent()) 
{ 
    ... 
} 

for循環從未becasue eventInstance運行等於空。 我只有這個問題與大型evtx文件。

的另一種方式是,如本文 https://phejndorf.wordpress.com/2011/03/31/using-c-and-linq-to-read-a-windows-eventlog-file-evtx/

如果我用這個方法,我可以讀出與問題在文件中描述的讀取使用LINQ evtx文件。

是不是一個好方法?

有何評論?

感謝

UPDATE:

我一直在這一個在第一種情形下,該問題是EventRecordID太大。如果我將查詢設置爲「*」。它工作正常。我不明白這是因爲EventRecord中的RecordID類型很長。

第二種情況一直正常。

回答

0

在你的問題中提到的方法是提供優良要編寫的代碼加載文件等

理想的情況下,應該使用Microsoft's Log Parser。使用這個簡單的SQL語句來獲取統計信息。

+0

Log Parser從2005年起。 2.2。這是最後一個版本嗎? – J19 2015-02-11 13:40:50

+0

是的,它是最新版本 – JunaidKirkire 2015-02-11 13:51:31