3.配置文件定义
Windows Performance Recorder (WPR) 记录配置文件存储在扩展名为 .wprp 的 XML 文件中。 配置文件定义将收集器和提供程序定义汇集在 .wprp 文件中。
配置文件
你可以使用 (<Profile> … </Profile>
XML 标记来定义 WPR 配置文件,这些标记是指在同一个 .wprp 文件中定义或者通过在另一个 .wprp 文件中使用继承定义的收集器和提供程序定义 XML 标记。 每个配置文件定义 XML 标记必须具有以下属性:
Id:配置文件定义的唯一标识符。 使用以下配置文件标识符构造:
< Name>.<DetailLevel>.<LoggingMode>。
Name:指示配置文件的名称的字符串。
DetailLevel:指定是将配置文件定义用于计时跟踪(精简)还是分析跟踪(详细)。
LoggingMode:指定配置文件是将事件记录到顺序文件还是循环内存缓冲区的属性。 所有配置文件都必须在同一个 .wprp 文件中同时具有文件和内存版本。
Description:用户看到的配置文件的文本说明。
WPR 支持针对每个 .wprp 文件的文件和内存日志记录模式进行性能记录(开关配置文件除外)。 必须将开关配置文件记录到文件,但必须同时定义文件和内存版本。 由于单个配置文件定义只能支持一个日志记录模式,因此 .wprp 文件中可能有两个或四个配置文件定义,每个配置文件模式和详细信息级别的组合各有一个。 单个 .wprp 文件中的所有配置文件定义必须具有相同的 Name 属性。
< Name>.<DetailLevel>.<LoggingMode>
下面的代码示例说明如何使用 Example1.wprp。 此文件包含两个配置文件定义。 省略号 (...) 表示配置文件的正文。
<Profile
Id="Example1.Verbose.File"
Name="Example1"
DetailLevel="Verbose"
LoggingMode="File"
Description="Example1 profile">
…
</Profile>
<Profile
Id="Example1.Verbose.Memory"
Name="Example1"
DetailLevel="Verbose"
LoggingMode="Memory"
Description="Example1 profile">
…
</Profile>
下面的代码示例说明如何使用 Example2.wprp。 此文件包含四个配置文件定义。 省略号 (...) 表示配置文件的正文。
<Profile
Id="Example2.Verbose.File"
Name="Example2"
DetailLevel="Verbose"
LoggingMode="File"
Description="Example2 profile">
…
</Profile>
<Profile
Id="Example2.Light.File"
Name="Example2"
DetailLevel="Light"
LoggingMode="File"
Description="Example2 profile">
…
</Profile>
<Profile
Id="Example2.Verbose.Memory"
Name="Example2"
DetailLevel="Verbose"
LoggingMode="Memory"
Description="Example2 profile">
…
</Profile>
<Profile
Id="Example2.Light.Memory"
Name="Example2"
DetailLevel="Light"
LoggingMode="Memory"
Description="Example2 profile">
…
</Profile>
Collectors 元素
Collectors 元素包含对以前定义的系统和事件收集器的引用。 SystemCollectorId 和 EventCollectorId 元素用于标识这些收集器。
每个 SystemCollectorId 和 EventCollectorId 元素都包含一个必需的 Value 属性,该属性指定要使用的收集器的 Id 属性。 每个 SystemCollectorId 和 EventCollectorId 元素还包含一个 SystemProviderId 或 EventCollectorId 元素的列表。 这些元素具有相似的语法。 但是,这些元素引用以前定义的系统和事件提供程序。
还可以在配置文件定义中定义收集器和提供程序。
配置文件定义示例
下面的代码示例显示了一个完整的配置文件定义。
<Profile
Id="Example.Light.File"
Name="Example"
DetailLevel="Light"
LoggingMode="File"
Description="Example profile">
<ProblemCategories>
<ProblemCategory
Value="First Level Triage"/>
</ProblemCategories>
<Collectors>
<SystemCollectorId
Value="WPRSystemCollector">
<!--Enables the system provider for this system collector. -->
<SystemProviderId
Value="system-provider"/>
</SystemCollectorId>
<EventCollectorId
Value="WPREventCollector">
<EventProviders>
<!--Enables two event providers for this event collector. -->
<EventProviderId
Value="Win32K-provider"/>
<EventProviderId
Value="Search-Core-provider"/>
</EventProviders>
</EventCollectorId>
</Collectors>
</Profile>