我使用EventLogWatcher类(因为它是建议作为最快的方法从事件日志读取)读取新写入的事件。比方说,我有大小2MB的命名CustomEventLog1
事件日志。我有一个应用程序编写一共有20000个事件此日志,当日志文件大小达到最大值已设置Overwrite events as needed
。
现在,我开始写的事件,观察者明显滞后的阅读速度和事件迷路。
让我来告诉它如何发生的;当应用程序写说(1000th entry)
,观察者仍然在读的500th entry
所以当观察者来读the2000th entry
,写应用程序已经与4000th entry
取代它。
所以1999th entry
后,我得到4000th entry
。当应用程序完成后书写20000 events
,观察者只拿到12020 entries
,其余丢失。
有没有什么办法来解决此问题?我知道增加日志文件的大小会就去做,但是有什么办法来实现这一目标而不增加日志的大小和不降低写入速度。
你想干什么重写而不会增加日志大小,并降低写入速度,而你也想读已覆盖日志,你不能兼得。但是你可以设置logsize >= 20000
,并删除该事件已被读取之后,使日志的大小将被保存到最大程度。