Сведения о TraceLogging
TraceLogging — это система для ведения журнала событий, которые можно декодировать без манифеста. В Windows TraceLogging используется как в пользовательском режиме, так и в компонентах режима ядра для создания трассировки событий Windows (ETW). TraceLogging основан на трассировке событий Windows (ETW) и предоставляет упрощенный способ инструментирования кода.
Трассировка событий Windows (ETW) появилась в Windows 2000 и обновлена в Windows Vista. TraceLogging основан на API Windows Vista ETW. Поставщики могут использовать TraceLogging при работе в Windows Vista или более поздней версии. Существующие контроллеры трассировки трассировки событий Windows можно использовать для управления поставщиками TraceLogging и записи трассировок с помощью API Windows Vista. Существующие декодеры трассировки Трассировки Windows, использующие API декодирования TDH, могут декодировать события TraceLogging при выполнении на Windows 10 или более поздней версии.
TraceLogging предлагает несколько преимуществ:
- Простота определения событий непосредственно в коде, аналогичная WPP, но без необходимости в средстве предварительной обработки.
- Структурированные данные: именованные поля с типами, поддержка массивов и структур.
- Корреляция событий с помощью действий трассировки событий Windows.
- Вся информация о декодирования для события включается в само событие, поэтому для декодирования дополнительных файлов не требуется.
- API поставщика событий TraceLogging доступны для C/C++, .NET и среда выполнения Windows (WinRT). Внешняя поддержка доступна для Python, Rust и т. д.
Хотя TraceLogging предоставляет несколько преимуществ и его следует учитывать для новой трассировки, трассировка событий windows на основе манифестов по-прежнему подходит для многих сценариев.
- Если ваши события нацелены на один из устаревших журналов Windows в журнале событий Windows (например, системные журналы или журналы приложений), продолжайте использовать трассировку событий windows на основе манифеста.
- Если важно учитывать размер файла трассировки, продолжайте использовать трассировку событий windows на основе манифеста. События TraceLogging включают строки событий (имя поставщика, имя события и имена полей) внутри каждого события и обычно больше, чем эквивалентное событие на основе манифеста.
- Если у вас есть большие инвестиции в существующую технологию трассировки, нет необходимости переходить на TraceLogging.
- В противном случае рассмотрите возможность использования TraceLogging, так как она упрощает работу разработчика и потребителя событий.
Общие сведения об API
Существует несколько API TraceLogging, каждый из которых предназначен для разных аудиторий разработчиков.
- Если необходимо создать события из кода C или C++, TraceLoggingProvider.h предоставляет эффективный API для создания событий TraceLogging из кода в пользовательском режиме или в режиме ядра. События должны быть определены во время компиляции.
- В противном случае, если необходимо создать события из кода .NET, класс .NET EventSource поддерживает создание событий трассировки событий Windows на основе манифеста и TraceLogging. События должны быть определены во время компиляции.
- В противном случае, если вы используете среда выполнения Windows (WinRT), функция LoggingChannel была расширена в Windows 10 для ведения журнала событий TraceLogging.
- В противном случае вы можете использовать поддерживаемый сообществом параметр , например TraceLoggingDynamic.