使用EventLogQuery获取首个Windows事件日志条目

时间:2016-04-12 07:44:28

标签: c# windows event-log

我试图使用C#EventLogQuery来获取第一个事件日志条目 但我似乎无法找到合适的查询..

string queryString = "*[System[(EventId= 1)]]";
string queryString = "*[System[(InstanceId = 1)]]";
string queryString = "*[System[(RecordNumber= 1)]]";

EventRecord eventRecord;
EventLogQuery query = new EventLogQuery(LOG_SYSTEM, PathType.LogName, queryString);
EventLogReader reader = new EventLogReader(query);

eventRecord = reader.ReadEvent();

return eventRecord;

所有结果都为null ..

这有效,但速度很慢:

var log = EventLog.GetEventLogs(Environment.MachineName);
var systemLog = log.Single(l => l.Log == "System");
var firstEntry = systemLog.Entries.Cast<EventLogEntry>().OrderBy(l => l.InstanceId).First();

所以我正在为这种情况寻找正确的查询。

1 个答案:

答案 0 :(得分:0)

我发现查询区分大小写 ...

这简单有效,而且速度极快!

string queryString = "*[System[(EventID = 1)]]";