Зачем использовать ETW поверх EventLog и наоборот?


Почему я должен использовать трассировку событий для Windows (ETW) поверх стандартного класса .NET EventLog и наоборот? Влияет ли на решение знание того, что мы будем использовать довольно много счетчиков производительности?

Что я знаю до сих пор:

  1. ETW долженработать намного лучше .
  2. ETW гораздо сложнее интегрировать с (например, трассировка событий .NET для Windows )
  3. путем выбора одного из стандартных каналов в ETW (например, приложение, система), та же информация доступна в журнале событий.
2 13

2 ответа:

ETW имеет много преимуществ.

Во-первых, в .NET 4.5 он будет намного проще в использовании. КлассEventSource в версии 4.5 значительно упрощает создание событий из вашего кода.

Однако, даже без этого, ETW имеет некоторые огромные преимущества, хотя он обычно работает по-другому, и, как таковой, служит другой цели, чем EventLog.

EventLog действительно предназначен для ведения журнала. ETW, с другой стороны, позволяет отслеживать прогресс вашего приложения в контексте системы в целом. Когда вы начинаете собирать события ETW, вы собираете их на системной основе, что позволяет вам не только отслеживать ваше приложение, но и видеть, что происходит в системе во время ее работы. С помощью такого инструмента, какPerfView , Вы можете видеть, как работают определенные части вашего приложения, одновременно видя, что происходит с платформой и Windows в целом.

Эта статья MSDN хорошо описывает преимущества ETW.

В то время как EventSource предоставляет отличный идиоматический способ для разработчиков .NET создавать события ETW, он не поставляется ни с одним из знакомых направлений для ведения журнала (rolling file, database и т. д.). ETW использует свои собственные пункты назначения, такие как .etl-файлы, а также использует различные инструменты для анализа и анализа данных журнала.

Новый блок Приложения семантического протоколирования упрощает включение Функциональность EventSource и управлять поведением журнала вашей системы. Это позволяет наследовать большую часть структуры от конвейера ETW, включая метаданные событий и полезные данные, записывать сообщения журнала в несколько назначений, таких как базы данных, подвижные файлы или хранилище таблиц Windows Azure, а также управлять тем, что записывает ваша система, устанавливая фильтры и детализацию ведения журнала.