TraceLoggingValue 宏 (traceloggingprovider.h)

用于 C++ 的 TraceLogging 包装宏,用于向事件添加具有自动推导类型的字段。

语法

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

参数

[in] value

事件字段值。

[in, optional] __VA_ARGS__

字段定义的可选 名称说明标记 参数。

可以使用 1、2、3 或 4 个参数指定 TraceLoggingValue。 如果未指定参数,将使用默认值。 例如,TraceLoggingValue(a+b) 等效于 TraceLoggingValue(a+b, "a+b", "", 0)

  • [in, optional] name

    要用于事件字段的名称。 如果提供名称参数,则名称参数必须是字符串文本 (而不是) 变量,并且不得包含任何“\0”字符。 如果未提供,事件字段名称将基于

  • [in, optional] description

    事件字段值的说明。 如果提供说明参数,则说明参数必须是字符串文本,并且将包含在 PDB 中

  • [in, optional] tags

    编译时常量整数值。 该值的低 28 位将包含在字段的元数据中。 此值的语义由事件使用者定义。 在事件处理期间,可以从 “EVENT_PROPERTY_INFO 标记”字段检索此值。

返回值

备注

在 C++ 代码中, TraceLoggingValue(value, ...) 可用作 TraceLoggingWrite 宏调用的参数。 每个 TraceLoggingValue 参数都会向事件添加一个字段。

ETW 事件中的字段类型会自动从 表达式的类型推导。 根据 的类型, TraceLoggingValue(value, ...) 等效于标准 TraceLogging 包装宏之一,如下所示:

类型 等效于 备注
bool TraceLoggingBoolean
char TraceLoggingChar 仅适用于 char,而不适用于已签名 char 或 unsigned char。
char16_t TraceLoggingChar16
wchar_t TraceLoggingWChar 仅适用于本机wchar_t,不适用于 USHORT。
intNN_t TraceLoggingIntNN 对于带符号字符,short、int、long 和 long。
uintNN_t TraceLoggingUIntNN 对于无符号 char,short、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
标头 traceloggingprovider.h

另请参阅

TraceLoggingWrite

TraceLogging 包装宏