我感兴趣的是编写一些代码来查询Windows事件日志中的特定错误消息内容,如this MSDN article中所述。但是,我并不是基本上手动滚动XPATH或代码中的自定义事件视图的机制的忠实粉丝......有更简单的方法吗?也许是LINQ提供商?
答案 0 :(得分:3)
也许有人会觉得这很有用......
我使用LinqPad查询远程计算机上的安全事件日志。它工作有点慢,但产生我需要的结果。查询我使用:
EventLog elog = new EventLog();
elog.MachineName = "REMOTE MACHINE NAME";
elog.Log = "Security";
var query =
from EventLogEntry e in elog.Entries
where e.EventID == 560 // EVENT CODE (FILE DELETION IN MY CASE)
&& e.UserName == @"DOMAIN\USERNAME"
&& e.Message.Contains("TEXT INSIDE THE MESSAGE")
select e;
query.Dump();
答案 1 :(得分:2)
您可以在事件查看器中创建自定义视图并复制生成的XML。架构完全相同。
另一个选项是一次读取一个事件,并使用字符串搜索,XPATH或LINQ to XML检查其内容。显然,这不是最具扩展性的解决方案,尤其是在查询远程服务器时。
谷歌搜索可以显示一些似乎使用LINQ查询事件日志的示例,但它们实际上只是枚举所有条目。似乎没有任何提供程序能够真正将LINQ查询转换为正确的XML并返回结果