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