我在
中使用 EventLogQuery eventsQuery = new EventLogQuery("Security", PathType.LogName, queryString);
EventLogReader logReader = new EventLogReader(eventsQuery);
为了阅读日志事件。
我需要找到事件编号#xxx
的最新用法( nevermind )
但读者从1--->100
我需要它从100--->1
开始,所以我可以得到第一个(满足我的查询)和打破循环。
我不希望使用中间人数据BUFFER 然后使用reverse
。
P.S。 - 我的日志文件大约是400 MB。 (win7)。
答案 0 :(得分:11)
您可以使用ReverseDirection
类的EventLogQuery
属性:
EventLogQuery eventsQuery = new EventLogQuery("Security", PathType.LogName, queryString);
eventsQuery.ReverseDirection = true;
EventLogReader logReader = new EventLogReader(eventsQuery);
希望,这有帮助。
答案 1 :(得分:0)
仅供参考,如果您只想要事件查看器中的最后XX个事件,则不必使用EventLogReader。我不想使用ELR,因为它仅限于Vista / Windows2008 / Win7。要使用.NET中的oldschool EventLog对象执行此操作,您只需在“条目”对象上使用索引器即可。以下代码段中的示例:
EventLog log = new EventLog("Application");
for (int counter = 1; counter <= sizeToGet; counter++)
{
string msg = log.Entries[log.Entries.Count - counter].Message;
Console.WriteLine(msg)
}