2015-02-11 141 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