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


Макрос TraceLoggingValue (traceloggingprovider.h)

Макрос-оболочка TraceLogging для C++, который добавляет в событие поле с автоматически выведенным типом.

Синтаксис

void TraceLoggingValue(
  [in]            value,
  [in, optional]  __VA_ARGS__
);

Параметры

[in] value

Значение поля события.

[in, optional] __VA_ARGS__

Необязательные параметры имени, описания и тегов для определения поля.

TraceLoggingValue можно указать с 1, 2, 3 или 4 параметрами. Если параметр не указан, будет использоваться значение по умолчанию. Например, выражение TraceLoggingValue(a+b) будет эквивалентно TraceLoggingValue(a+b, "a+b", "", 0).

  • [in, optional] name

    Имя, используемое для поля события. Если он указан, параметр name должен быть строковым литералом (не переменной) и не должен содержать символы "\0". Если этот параметр не указан, имя поля события будет основано на значении.

  • [in, optional] description

    Описание значения поля события. Если он указан, параметр description должен быть строковым литералом и будет включен в PDB.

  • [in, optional] tags

    Целочисленное значение константы времени компиляции. Низкие 28 бит значения будут включены в метаданные поля. Семантика этого значения определяется потребителем события. Во время обработки события это значение можно получить из поля EVENT_PROPERTY_INFO Теги.

Возвращаемое значение

None

Remarks

В коде TraceLoggingValue(value, ...) C++ можно использовать в качестве параметра для вызова макроса TraceLoggingWrite . Каждый параметр TraceLoggingValue добавляет одно поле к событию.

Тип поля в событии ETW автоматически выводится из типа выражения значения . В зависимости от типа значенияTraceLoggingValue(value, ...) эквивалентен одному из стандартных макросов-оболочек TraceLogging следующим образом:

Тип значения Эквивалент Примечания
bool TraceLoggingBoolean
char TraceLoggingChar Только для символа char, а не для символа со знаком или без знака char.
char16_t TraceLoggingChar16
wchar_t TraceLoggingWChar Только для собственных wchar_t, а не для USHORT.
intNN_t TraceLoggingIntNN Для знаков char, short, int, long и long long.
uintNN_t TraceLoggingUIntNN Для неподписанных символов, коротких, int, long и long long.
float TraceLoggingFloat32
double TraceLoggingFloat64
GUID TraceLoggingGuid
FILETIME TraceLoggingFileTime
SYSTEMTIME TraceLoggingSystemTime
SID* TraceLoggingSid Должен иметь значение, отличное от NULL, и указывать на допустимый SID.
void* TraceLoggingPointer Записывает в журнал значение указателя, а не указанные данные.
char* TraceLoggingString Строка CP_ACP с нулем. Значение NULL обрабатывается как "".
char16_t* TraceLoggingString16 Строка UTF-16 с нулем. Значение NULL обрабатывается как u"".
wchar_t* TraceLoggingWideString Строка UTF-16 с нулем. Значение NULL обрабатывается как L"".

Требования

Требование Значение
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header traceloggingprovider.h

См. также раздел

TraceLoggingWrite

Макросы-оболочки TraceLogging