2015-08-21 4 views
2

Я планирую использовать ETW, потому что:ETW потребляя прошлое событие

  • силы структурировать протоколирование
  • Это низкая латентность
  • Способность потреблять события на другом процессе

Идея состоит в том, чтобы потреблять события ETW с использованием внешнего процесса, такого как блок приложения Semantic log, и пересылать эти события в центральное место.

Мой вопрос есть. Если потребитель ETW не работает по какой-либо причине, пока приложение продолжает отправлять события в ETW, есть ли способ уничтожить прошлые события?

ответ

1

Ничего не записывает события, пока ваш пользовательский Recorder не работает. ETW ничего не хранит, если у вас нет Session между вашим Provider и вашим Recorder.

Решение, которое я могу вам предложить, заключается в использовании WPR и вашего обычая Recorder. Сохраните трассировку в файл ... Но помните, что ETW может поднять 20 тыс. Событий (вы получите события BCL ...) в 1 секунде ... (сохраните файл небольшим и быстро восстановитесь от сбоя. .)

Редактировать

в this article:

Вы можете все еще потерять сообщения войти сценарии вне-процесса, если сам сервер не между временем приложение пишет сообщение журнала и время, когда хост вне процесса продолжает сообщение, или если внешнее хост-приложение cr перед тем, как оно сохранится.

Так как я уже говорил, используя 2 приложения может помочь ...