在 C# 中查询事件日志中消息内容的最简单方法是什么?
我有兴趣编写一些代码来查询 Windows 事件日志以获取特定错误消息内容,如 这篇 MSDN 文章。然而,我不太喜欢在代码中手动滚动 XPATH 或自定义事件视图的机制......有没有更简单的方法来做到这一点?也许是 LINQ 提供商?
I'm interested in writing some code to query the Windows Event Log for specific error message contents, as described in this MSDN article. However, I'm not a big fan of the mechanic of basically hand-rolling XPATH or a custom event view in the code...is there a simpler way of doing this? A LINQ provider perhaps?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
也许有人会发现这很有用...
我正在使用 LinqPad 查询远程计算机上的安全事件日志。它工作得有点慢,但产生了我需要的结果。我正在使用的查询:
Maybe someone will find this useful...
I'm using LinqPad to query Security Event Log on remote machine. It working a little bit slowly but produces result I need. Query I'm using:
您可以在事件查看器中创建自定义视图并复制生成的 XML。架构完全相同。
另一种选择是一次读取一个事件,并使用字符串搜索、XPATH 或 LINQ to XML 检查其内容。显然,这不是最具可扩展性的解决方案,特别是在查询远程服务器时。
谷歌搜索可以找到一些似乎使用 LINQ 来查询事件日志的示例,但它们实际上只是枚举了所有条目。似乎没有任何提供程序能够真正将 LINQ 查询转换为正确的 XML 并返回结果
You can create a custom view in Event Viewer and copy the generated XML. The schema is exactly the same.
The other option is to read the events one at a time and check their contents using string searches, XPATH or LINQ to XML. Obviously, not the most scalable solution, especially when querying remote servers.
Googling can turn up some samples that seem to be using LINQ to query the Event Log but they really just enumerate over all the entries. There doesn't seem to be any provider that will really convert a LINQ query to the proper XML and return the results