추적 로깅 이벤트 기록 및 보기
많은 도구를 사용하여 TraceLogging ETW 이벤트를 수집하고 디코딩할 수 있습니다.
- 추적 세션을 제어하려면 WPR, 추적 로그 또는 추적 보기와 같은 도구를 사용합니다.
- 세션에서 이벤트를 디코딩하려면 WPA, tracefmt 또는 traceview와 같은 도구를 사용합니다.
이 예제에서는 WPR(Windows Performance Recorder)을 사용하여 TraceLogging 이벤트를 기록하고 WPA(Windows 성능 분석기)로 보는 방법을 보여 줍니다.
사전 요구 사항
- Windows 10
- Windows 10 버전의 WPR(Windows Performance Recorder) 및 Windows ADK(Windows 평가 및 배포 키트)의 일부인 WPA(Windows® 성능 분석기)의 Windows 10 버전입니다.
중요
TraceLogging으로 캡처된 추적은 Windows 10 버전의 Windows Performance Recorder로 캡처하고 Windows 10 버전의 Windows 성능 분석기 통해 확인해야 합니다. 이벤트를 캡처하거나 디코딩할 수 없는 경우 Windows 10 버전의 도구를 사용하고 있는지 확인합니다.
1. WPR을 사용하여 추적 데이터 캡처
Windows Phone 추적을 캡처하려면 아래 Windows Phone 추적 로깅 이벤트 캡처를 참조하세요.
WPR을 사용하여 추적 로깅 이벤트를 캡처할 수 있도록 Windows 성능 레코더 프로필(.wprp)을 만듭니다.
를 만듭니다. WPRP 파일
TraceLogging C/C++ 빠른 시작의 네이티브 코드 예제 또는 추적 로깅 관리 빠른 시작의 관리되는 예제와 함께 다음 WPRP 예제를 사용합니다. 자체 공급자에서 이벤트를 로깅하는 경우 섹션을
TODO
공급자에 대한 적절한 값으로 바꿉니다.중요
TraceLogging C/C++ 빠른 시작을 사용하는 경우 요소의 특성에 공급자 GUID를
Name
<EventProvider>
지정합니다. 예:<EventProvider Id="EventProvider_SimpleTraceLoggingProvider" Name="0205c616-cf97-5c11-9756-56a2cee02ca7" />
관리되는 TraceLogging 빠른 시작을 사용하는 경우 요소의<EventProvider />
특성에서Name
앞에 앞에 있는 공급자 이름을*
지정합니다. 예들 들어<EventProvider Name="*SimpleTraceLoggingProvider" />
입니다.샘플 WPRP 파일:
<?xml version="1.0" encoding="utf-8"?> <!-- TODO: 1. Find and replace "SimpleTraceLoggingProvider" with the name of your provider. 2. See TODO below to update GUID for your event provider --> <WindowsPerformanceRecorder Version="1.0" Author="Microsoft Corporation" Copyright="Microsoft Corporation" Company="Microsoft Corporation"> <Profiles> <EventCollector Id="EventCollector_SimpleTraceLoggingProvider" Name="SimpleTraceLoggingProvider"> <BufferSize Value="64" /> <Buffers Value="4" /> </EventCollector> <!-- TODO: 1. Update Name attribute in EventProvider xml element with your provider GUID, eg: Name="0205c616-cf97-5c11-9756-56a2cee02ca7". Or if you specify an EventSource C# provider or call TraceLoggingRegister(...) without a GUID, use star (*) before your provider name, eg: Name="*MyEventSourceProvider" which will enable your provider appropriately. 2. This sample lists one EventProvider xml element and references it in a Profile with EventProviderId xml element. For your component wprp, enable the required number of providers and fix the Profile xml element appropriately --> <EventProvider Id="EventProvider_SimpleTraceLoggingProvider" Name="*SimpleTraceLoggingProvider" /> <Profile Id="SimpleTraceLoggingProvider.Verbose.File" Name="SimpleTraceLoggingProvider" Description="SimpleTraceLoggingProvider" LoggingMode="File" DetailLevel="Verbose"> <Collectors> <EventCollectorId Value="EventCollector_SimpleTraceLoggingProvider"> <EventProviders> <!-- TODO: 1. Fix your EventProviderId with Value same as the Id attribute on EventProvider xml element above --> <EventProviderId Value="EventProvider_SimpleTraceLoggingProvider" /> </EventProviders> </EventCollectorId> </Collectors> </Profile> <Profile Id="SimpleTraceLoggingProvider.Light.File" Name="SimpleTraceLoggingProvider" Description="SimpleTraceLoggingProvider" Base="SimpleTraceLoggingProvider.Verbose.File" LoggingMode="File" DetailLevel="Light" /> <Profile Id="SimpleTraceLoggingProvider.Verbose.Memory" Name="SimpleTraceLoggingProvider" Description="SimpleTraceLoggingProvider" Base="SimpleTraceLoggingProvider.Verbose.File" LoggingMode="Memory" DetailLevel="Verbose" /> <Profile Id="SimpleTraceLoggingProvider.Light.Memory" Name="SimpleTraceLoggingProvider" Description="SimpleTraceLoggingProvider" Base="SimpleTraceLoggingProvider.Verbose.File" LoggingMode="Memory" DetailLevel="Light" /> </Profiles> </WindowsPerformanceRecorder>
파일을 로 저장합니다. WPRP 파일 이름 확장명.
관리자 권한(관리자 권한으로 실행) 명령 프롬프트 창에서 WPR을 사용하여 캡처를 시작합니다.
< wpr> 경로\wpr.exe -start GeneralProfile -start TraceLoggingProvider.wprp
팁
일반적인 프로파일링을 위해 wpr.exe 명령줄에 -start GeneralProfile 을 추가하여 공급자의 이벤트와 함께 시스템 이벤트를 캡처할 수도 있습니다. 이벤트만 수집하려면 -start GeneralProfile을 생략합니다.
이벤트를 포함하는 애플리케이션을 실행합니다.
추적 캡처를 중지합니다.
< wpr> 경로\wpr.exe -stop TraceCaptureFile.etl 설명
팁
시스템 이벤트를 수집하기 위해 -start GeneralProfile을 추가한 경우 위의 wpr.exe 명령줄에 -stop GeneralProfile을 추가합니다.
2. Windows Phone 추적 로깅 이벤트 캡처
추적 로그를 시작하여 공급자의 이벤트를 캡처합니다.
cmdd tracelog -start test -f c:\test.etl -guid #providerguid
테스트 시나리오를 실행하여 이벤트를 기록합니다.
추적 캡처를 중지합니다.
cmdd tracelog -stop 테스트
시스템 추적 결과를 추적 결과와 병합합니다.
cmdd xperf -merge c:\test.etl c:\testmerged.etl
병합된 로그 파일을 검색합니다.
getd c:\testmerged.etl
3. Windows 성능 분석기 사용하여 추적 로깅 데이터 보기
WPA는 현재 TraceLogging 추적(.etl) 파일을 보는 데 사용할 수 있는 유일한 뷰어입니다.
WPA를 시작합니다.
<wpr>\wpa.exe traceLoggingResults.etl 경로
위의 wpa.exe 명령에 지정한 추적(.etl) 파일(예: traceLoggingResults.etl)을 로드합니다.
공급자 이벤트를 봅니다. WPA 그래프 Explorer 시스템 활동을 확장합니다.
일반 이벤트 창을 두 번 클릭하여 분석 창에서 이벤트를 봅니다.
분석 창에서 공급자에서 이벤트를 찾아 TraceLogging이 작동하는지 확인합니다.
제네릭 이벤트 테이블의 공급자 이름 열에서 공급자 이름이 있는 행을 찾아 선택합니다.
정렬할 공급자가 여러 명 있는 경우 열 머리글을 클릭하여 공급자를 더 쉽게 찾을 수 있는 열 이름을 기준으로 정렬합니다.
공급자를 찾으면 이름을 마우스 오른쪽 단추로 클릭하고 선택 영역으로 필터링을 선택합니다.
SimpleTraceLoggingProvider 및 해당 값에 대한 이벤트는 분석 창의 아래쪽 창에 표시됩니다. 공급자 이름을 확장하여 이벤트를 확인합니다.
WPA 사용에 대한 자세한 내용은 Windows 성능 분석기 참조하세요.
요약 및 다음 단계
WPR 및 WPA를 사용하여 ETW 이벤트를 기록하고 보는 프로세스는 TraceLogging 이벤트에 동일하게 적용됩니다.
추가 TraceLogging 예제는 C/C++ 추적 로깅 예제를 참조하세요.