Tracefmt 向每个跟踪消息添加前缀,该前缀由 存储在事件跟踪日志 (.etl) 文件 中的数据和 跟踪消息格式 (.tmf) 文件组成。
默认情况下,Tracefmt 包括特定的数据元素,但用户可以通过更改 %TRACE_FORMAT_PREFIX% 环境变量(一个指定与 FormatMessage 兼容的消息定义的字符串)来添加和删除元素。
默认跟踪消息前缀的格式如下所示:
[%9!d!]%8!04X!.%3!04X!::%4!s! [%1!s!]
这将生成以下前缀:
[CPUNumber]ProcessID.ThreadID :: SystemTime [MessageGUIDFriendlyName]
每个 %n 变量表示下表中所述的参数。
| 前缀变量标识符 | 变量类型 | 说明 | 
|---|---|---|
| %1 | 字符串 | 跟踪 消息的消息 GUID 的友好名称。 默认情况下,消息 GUID 的友好名称是在其中生成 跟踪提供程序 的目录的名称。 若要更改消息 GUID 的友好名称,请将 -p 参数与 Tracewpp 或 RUN_WPP 宏一起使用。 有关详细信息,请参阅 Run_WPP 选项。 | 
| %2 | 字符串 | 源文件和行号。 此变量表示跟踪消息的友好名称。 默认情况下,跟踪消息的友好名称是源文件的名称和生成跟踪消息的代码的行号。 | 
| %3 | ULONG | 线程 ID。 标识生成跟踪消息的线程。 | 
| %4 | 字符串 | 生成跟踪消息的时间的时间戳。 | 
| %5 | 字符串 | 内核时间。 显示生成跟踪消息时内核模式指令的已用执行时间(以 CPU 刻度为单位)。 | 
| %6 | 字符串 | 用户时间。 显示生成跟踪消息时用户模式指令的已用执行时间(以 CPU 刻度为单位)。 | 
| %7 | LONG | 序列号。 显示跟踪消息的本地或全局序列号。 本地序列号(仅对此跟踪会话是唯一的)是默认值。 | 
| %8 | ULONG | 进程 ID。 标识生成跟踪消息的进程。 | 
| %9 | ULONG | CPU 编号。 标识生成跟踪消息的 CPU。 | 
| %!FUNC! | 字符串 | 函数名称。 显示生成跟踪消息的函数的名称。 | 
| %!标志! | 字符串 | 显示启用跟踪消息的跟踪 标志 的名称。 (由于 DoTraceMessage 宏反转标志和级别参数,DoTraceMessage 生成的消息在此字段中显示 跟踪级别的 值。) | 
| %!水平! | 字符串 | 显示启用跟踪消息的跟踪 级别的 值。 (由于 DoTraceMessage 宏反转标志和级别参数,DoTraceMessage 生成的消息在此字段中显示 跟踪标志 的名称。) | 
| %!COMPNAME! | 字符串 | 组件名称。 显示生成跟踪消息的提供程序的组件的名称。 仅当在跟踪代码中指定组件名称时,才会显示该名称。 | 
| %!SUBCOMP! | 字符串 | 子组件名称。 显示生成跟踪消息的提供程序的子组件的名称。 仅当在跟踪代码中指定组件名称时,才会显示该名称。 | 
感叹号中的符号是一个转换字符,用于指定变量的格式设置和精度。 例如,%8!04X! 指定表示为四位无符号十六进制数的进程 ID。 必须包含这些转换字符。
若要更改跟踪消息前缀的元素、顺序或格式,请使用 %TRACE_FORMAT_PREFIX% 环境变量。 有关示例,请参阅 示例 7:自定义跟踪消息前缀。
有关 TMF 文件中的内容示例,请参阅设置 tracedrv 示例中的跟踪消息的格式。
此外, -csv 参数还会在标准 Tracefmt 前缀之前向每个跟踪消息添加一个不可配置的详细前缀。 有关 CSV 前缀中字段的说明,请使用 -csvheader 参数。