3. 프로필 정의
WPR(Windows Performance Recorder) 기록 프로필은 확장명이 .wprp인 XML 파일에 저장됩니다. 프로필 정의는 .wprp 파일에서 수집기 및 공급자 정의를 함께 가져옵니다.
Profiles
동일한 .wprp 파일에서 정의하는 수집기 및 공급자 정의 XML 태그를 참조하는 (<Profile> … </Profile>
XML 태그를 사용하거나 다른 .wprp 파일에서 상속을 사용하여 WPR 프로필을 정의합니다. 각 프로필 정의 XML 태그에는 다음 특성이 있어야 합니다.
Id: 프로필 정의의 고유 식별자입니다. 다음 프로필 식별자 생성을 사용합니다.
<이름>.<DetailLevel>.<LoggingMode>.
이름: 프로필의 이름을 나타내는 문자열입니다.
DetailLevel: 프로필 정의가 타이밍 추적(간단함) 또는 분석 추적(자세함)에 사용되는지 여부를 지정하는 특성입니다.
LoggingMode: 프로필이 이벤트를 순차 파일에 기록할지 순환 메모리 버퍼에 기록할지 지정하는 특성입니다. 모든 프로필에는 파일과 동일한 .wprp 파일의 메모리 버전이 둘 다 있어야 합니다.
설명: 사용자에게 표시되는 프로필에 대한 텍스트 설명입니다.
WPR은 설정/해제 프로필을 제외한 각 .wprp 파일의 파일 및 메모리 로깅 모드 모두에 대한 성능 기록을 지원합니다. 파일에 대한 프로필을 로그온/오프해야 하지만 파일과 메모리 버전을 모두 정의해야 합니다. 단일 프로필 정의는 하나의 로깅 모드만 지원할 수 있으므로 .wprp 파일에는 로깅 모드와 세부 정보 수준의 각 조합에 대해 하나씩 두 개 또는 네 개의 프로필 정의가 있을 수 있습니다. 단일 .wprp 파일의 모든 프로필 정의에는 동일한 이름 특성이 있어야 합니다.
<이름>.<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>
수집기 요소
수집기 요소에는 이전에 정의된 시스템 및 이벤트 수집기에 대한 참조가 포함되어 있습니다. SystemCollectorId 및 EventCollectorId 요소는 이러한 수집기를 식별합니다.
각 SystemCollectorId 및 EventCollectorId 요소에는 사용할 수집기의 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>