我正在開發一個日誌分析服務,它捕獲Windows事件日誌中的特定安全事件。我最初的想法是使用微軟的LogParser,但除了選擇事先已知的特定實例/事件ID之外,我沒有尋找任何功能。是否有一種內置方法可用於在.NET EventLog.Entries集合中對條目進行二分搜索?
經過一些基準測試後,我發現迭代整個.NET EventLog.Entries
集合的速度比查詢Microsoft的LogParser快3倍。
最終,要拖動的數據將保存在SQL Server數據庫中。由於該服務每天都會執行此項任務,因此我希望避免重複輸入,並且我需要一種方法來查找EventLog.Entries
集合中尚未存在於數據庫中的下一個條目。一旦找到初始條目,我可以開始插入數據庫。
我只是寫一個二進制搜索找到使用從數據庫中最新DATETIME
時間戳字段和EventLog.Entries
收集它從項目相較於TimeWritten
財產此項。這我可以做,但我想知道是否已經有一個內置的方法來執行此搜索?