Макрос 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 |