在Desc命令模式下使用EventLogReader?
问题描述:
林使用在Desc命令模式下使用EventLogReader?
EventLogQuery eventsQuery = new EventLogQuery("Security", PathType.LogName, queryString);
EventLogReader logReader = new EventLogReader(eventsQuery);
为了读取日志事件。
我需要找到事件编号#xxx
(没关系)
但读者从1--->100
开始的最新使用我需要它从100--->1
开始,所以我可以得到第一个(满足我的查询)和打破循环。
我不想使用中间人DATA BUFFER然后reverse
它。
p.s. - 我的日志文件大约是400 MB。 (win7)。
答
您可以使用ReverseDirection
财产上的EventLogQuery
类:
EventLogQuery eventsQuery = new EventLogQuery("Security", PathType.LogName, queryString);
eventsQuery.ReverseDirection = true;
EventLogReader logReader = new EventLogReader(eventsQuery);
希望,这会有所帮助。
答
只是供参考,如果你只是想从事件查看器的最后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)
}
你是男人....... –
它是用C# –
@Royi纳米尔来读取事件日志的最后一个事件的最快方法:这是最快的方法?这取决于您正在编程的应用程序的类型。如果您的应用程序一直在运行,那么您可以订阅特定事件而不是重复查询事件日志。 – Hans