我现在正在构建一个 Windows 事件日志查看器,我们有很多 Window Server 2003 机器。我正在使用 EventLogReader 类进行查询,但它需要 Vista+,因此不能在 Windows Server 2003 上运行。虽然 EventLog 类可用但速度很慢。我还有其他选择吗?
更新:我不是在查询所有事件日志,而是在一个日期范围内查询事件日志,如果我们只需要一个范围内的事件日志,有没有办法让它更快?现在使用 EventLog 类即使对于本地框也非常慢,对于远程框来说无法忍受。
最佳答案
EventLog 类很慢。访问速度取决于事件日志的大小。在大多数服务器场景中,允许它们在归档之前变得非常大。 native Windows 事件查看器还支持远程日志查看,这使您可以演示远程日志查看有多慢。
我认为 EventLog 的 Entries 属性很可能是按日期排序的。这意味着您可以实现条目的二进制搜索(默认情况下 Linq 不会这样做)以加快速度。这是二进制搜索扩展的示例:Can LINQ use binary search when the collection is ordered?
关于c# - 使用 C# 在 Windows Server 2003 上查询 EventLog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14151718/