Как предотвратить потерю извлечения событий при чтении из журнала событий? - PullRequest
0 голосов
/ 05 февраля 2019

Я использую EventLogWatcher класс (как это было предложено как самый быстрый доступный метод для чтения из журнала событий) для чтения вновь записанных событий.Допустим, у меня есть журнал событий с именем CustomEventLog1 размером 2 МБ.У меня есть приложение, чтобы написать в общей сложности 20000 событий в этот журнал и установил Overwrite events as needed, когда журнал достигает максимального размера.

Теперь, когда я начинаю писать события, наблюдатель явно отстает от скорости чтения, и события теряются.

Позвольте мне рассказать, как это происходит;когда приложение пишет, скажем, (1000th entry), наблюдатель все еще читает 500th entry, поэтому, когда наблюдатель приходит, чтобы прочитать 2000th entry, пишущее приложение уже заменило его на 4000th entry.

Так что после 1999th entry я получаю 4000th entry.Когда приложение завершило запись 20000 events, наблюдатель получил только 12020 entries, а остальные были потеряны.

Есть ли способ обойти это?Я знаю, что увеличение размера файла журнала просто сделает это, но есть ли способ достичь этого, не увеличивая размер журнала и не уменьшая скорость записи.

1 Ответ

0 голосов
/ 11 февраля 2019

Вы хотите выполнить перезапись, не увеличивая размер журнала и не уменьшив скорость записи, и вы также хотите прочитать журнал, который перезаписывается, вы не можете иметь и то и другое.Но вы можете установить logsize >= 20000 и удалить событие после его прочтения, чтобы размер журнала был сохранен в максимальной степени.

...