我想从c#程序中的某个自定义事件日志中读取事件条目,并按其描述过滤它们.有办法吗?或者将条目作为集合获取的方法,以便我可以从条件中进行选择?
尝试这样的事情:
string queryString = string.Format("*[System[TimeCreated[@SystemTime>='{0}' and @SystemTime<='{1}']]]", DateTime.Now.Date.AddDays(-10).ToString("s"), DateTime.Now.Date.ToString("s")); var q = new EventLogQuery("Microsoft-Windows-User Profile Service/Operational", PathType.LogName, queryString); var r = new EventLogReader(q); var list = new List(); EventRecord er = r.ReadEvent(); while (er != null) { list.Add(er); er = r.ReadEvent(); }
过滤器是XPath
和XQuery
.如果你想了解一个事件内部结构,我发现最好仔细阅读其中的过滤器定义eventvwr
.看看XML
-tab ...