Поделиться через


Справочник по traceLogging

В следующих разделах содержатся сведения об API TraceLogging C/C++.

Примечание

Если вы создаете события из кода C/C++, а события определяются во время компиляции, используйте API, описанные в этом разделе. В противном случае при создании событий из кода .NET используйте класс .NET EventSource . В противном случае, если вы используете среда выполнения Windows (WinRT), используйте LoggingChannel. В противном случае вы можете использовать поддерживаемый сообществом вариант, например TraceLoggingDynamic.

TraceLogging основан на трассировке событий Windows (ETW) и проще в использовании, чем трассировка событий Windows на основе манифеста или WPP. TraceLogging позволяет создавать события, включающие структурированные данные, поддерживает корреляцию событий с помощью действий трассировки событий Windows и не требует отдельного XML-файла манифеста инструментирования для декодирования.

TraceLoggingProvider.h — это рекомендуемый API для разработчиков C/C++ в режиме пользователя или ядра. Следующие ссылки описывают API C/C++.

Обратите внимание, что значение WINVER (режим пользователя) повлияет на поведение TraceLoggingProvider.h:

  • Если winVER не задан до включения <windows.h>, то <windows.h> присвоит WINVER значение по умолчанию, соответствующее версии пакета SDK.
  • Если вы используете TraceLoggingProvider.h с параметром WINVER, для которого задано значение 0x0602 (Windows 8) или более поздней версии, программа может не запускаться в Windows Vista или Windows 7 (TraceLoggingProvider.h попытается напрямую использовать EventSetInformation, который не присутствовал в RTM-версиях Windows Vista или Windows 7).
  • Если вы используете TraceLoggingProvider.h с winver, для 0x0600 (Windows Vista) или 0x0601 (Windows 7), программа будет настроена для совместимости и будет работать в указанных версиях Windows (TraceLoggingProvider.h вызовет EventSetInformation через GetProcAddress, если она доступна).