如何通过 Windows 事件日志服务启用 WPP 跟踪
Windows 事件日志服务支持 WPP 日志记录和解码。 本主题介绍如何通过 Windows 事件日志服务启用 WPP 跟踪。
在此方案中启用 WPP 跟踪不需要 WPP 提供程序执行额外的工作。 但是,若要使用 Windows 事件日志服务,必须提供清单和事件日志提供程序。 若要启用 WPP 跟踪,请声明调试通道,并将关联的控件 GUID 指定为 WPP 提供程序声明。
例如:
<instrumentationManifest
xmlns="http://schemas.microsoft.com/win/2004/08/events"
xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events"
xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://schemas.microsoft.com/win/2004/08/events eventman.xsd"
>
<instrumentation>
<events>
<provider name="Microsoft-Windows-mySampleProvider"
guid="{61CE3EC9-E5E8-4b96-A451-74631A6E0D5C}"
>
<channel
chid="MS_WINDOWS_GE_DEBUG"
enabled="false"
isolation="System"
message="$(string.Microsoft-Windows-GenerateEvent.channel.CHANNEL_DEBUG.message)"
name="Microsoft-Windows-GenerateEvent/Debug"
symbol="CHANNEL_DEBUG"
type="Debug"
>
<publishing>
<level>2</level>
<keywords>0xFFFFFFFF</keywords>
<controlGuid>{d58c126f-b309-11d1-969e-0000f875a5bc}</controlGuid>
</publishing>
</channel>
</provider>
</events>
</instrumentation>
</instrumentationManifest>
并非一直启用 WPP 跟踪,因此默认情况下,清单中的 enable 属性应设置为 false。 如果需要 WPP 跟踪,请更改清单中的 属性,使 enabled=“true”。
不能指定或单独选择控制位。 若要为此通道启用所有 WPP 事件,请将关键字 (keyword) 值指定为 0XFFFFFFFF。 在内部,控制位映射到关键字;如果知道哪个位映射到特定关键字 (keyword) ,则可以选择该关键字 (keyword) 以获取一组特定的事件。 在示例清单中,关键字 (keyword) 值0xFFFF,因为所需的 WPP 控制位少于 16 位。 若要在安装后获取一组特定的事件,可以使用 wevtutil.exe 命令行实用工具更改关键字。 命令为:
wevtutilsl<通道名称>/k:<关键字 (keyword) 对应于控制位>的值
请注意,必须先禁用通道才能更改关键字 (keyword) 值。
通过以这种方式声明通道,WPP 提供程序 () 指定了其控制 GUID,以及声明此通道的事件日志提供程序 () 访问调试通道,因此任一提供程序都可以写入此通道。 现在可以通过事件查看器在此通道下查看 WPP 事件或普通 ETW 事件。
WPP 事件不会解码。 若要获取与这些事件关联的消息字符串,请将 TMF 文件放在 %windir%\System32\winevt\TraceFormat 目录中。 可以使用实用工具(如 Tracepdb.exe)获取 TMF 文件,该实用工具采用 PDB 文件进行输入并返回 TMF 文件。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈