Я использую EventLogWatcher класс (как это было предложено как самый быстрый доступный метод для чтения из журнала событий) для чтения вновь записанных событий.Допустим, у меня есть журнал событий с именем CustomEventLog1
размером 2 МБ.У меня есть приложение, чтобы написать в общей сложности 20000 событий в этот журнал и установил Overwrite events as needed
, когда журнал достигает максимального размера.
Теперь, когда я начинаю писать события, наблюдатель явно отстает от скорости чтения, и события теряются.
Позвольте мне рассказать, как это происходит;когда приложение пишет, скажем, (1000th entry)
, наблюдатель все еще читает 500th entry
, поэтому, когда наблюдатель приходит, чтобы прочитать 2000th entry
, пишущее приложение уже заменило его на 4000th entry
.
Так что после 1999th entry
я получаю 4000th entry
.Когда приложение завершило запись 20000 events
, наблюдатель получил только 12020 entries
, а остальные были потеряны.
Есть ли способ обойти это?Я знаю, что увеличение размера файла журнала просто сделает это, но есть ли способ достичь этого, не увеличивая размер журнала и не уменьшая скорость записи.