我正在开发一个日志解析服务,用于捕获 Windows 事件日志中的特定安全事件。我最初的想法是使用 Microsoft 的LogParser,但除了选择预先已知的特定实例/事件 ID 之外,我并没有寻找任何功能。
经过一些基准测试后,我发现迭代整个 .NETEventLog.Entries
集合在提取数据方面比查询 Microsoft 的 LogParser 快 3 倍多。
最终,要提取的数据将保存在 SQL Server 数据库中。由于该服务每天都会执行此任务,因此我希望避免重复条目,并且我需要一种方法来查找EventLog.Entries
集合中尚未在数据库中的下一个条目。一旦找到初始条目,我就可以开始插入数据库。
我正要编写一个二分搜索,以使用DATETIME
数据库中最新的时间戳字段来查找此条目,并将其与集合TimeWritten
中某个项目的属性进行比较。EventLog.Entries
我可以这样做,但我想知道是否已经有内置方法来执行此搜索?