추적 기록 이벤트 기록 및 보기

많은 도구를 사용하여 TraceLogging ETW 이벤트를 수집하고 디코딩할 수 있습니다.

  • 추적 세션을 제어하려면 WPR, 추적 로그 또는 traceview와 같은 도구를 사용합니다.
  • 세션에서 이벤트를 디코딩하려면 WPA, tracefmt 또는 traceview와 같은 도구를 사용합니다.

이 예제에서는 WPR(Windows 성능 레코더)을 사용하여 TraceLogging 이벤트를 기록하고 WPA(Windows Performance Analyzer)를 사용하여 보는 방법을 보여 줍니다.

사전 요구 사항

  • Windows 10
  • Windows ADK(Windows Assessment and Deployment Kit)의 일부인 Windows 10 버전의 WPR(Windows Performance Recorder) 및 Windows 10 버전의 WPA(Windows® Performance Analyzer)입니다.

중요

TraceLogging으로 캡처된 추적은 Windows 10 버전의 Windows 성능 레코더로 캡처하고 Windows 10 버전의 Windows Performance Analyzer로 확인해야 합니다. 이벤트를 캡처하거나 디코딩할 수 없는 경우 Windows 10 버전의 도구를 사용하고 있는지 확인합니다.

1. WPR을 사용하여 추적 데이터 캡처

Windows Phone에서 추적을 캡처하려면 아래 Windows Phone에서 추적 로깅 이벤트 캡처를 참조하세요.

WPR을 사용하여 추적 로깅 이벤트를 캡처할 수 있도록 Windows 성능 레코더 프로필(.wprp)을 만듭니다.

를 만듭니다. WPRP 파일

  1. TraceLogging C/C++ 빠른 시작의 네이티브 코드 예제 또는 추적 로깅 관리 빠른 시작의 관리되는 예제와 함께 다음 WPRP 예제를 사용합니다. 사용자 고유의 공급자에서 이벤트를 로깅하는 경우 섹션을 TODO 공급자에 대한 적절한 값으로 바꿉니다.

    중요

    TraceLogging C/C++ 빠른 시작을 사용하는 경우 요소의 특성에 Name 공급자 GUID를 <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>
    
  2. 파일을 .으로 저장합니다. WPRP 파일 이름 확장명.

  3. 관리자 권한(관리자 권한으로 실행) 명령 프롬프트 창에서 WPR을 사용하여 캡처를 시작합니다.

    <wpr> 경로\wpr.exe -start GeneralProfile -start TraceLoggingProvider.wprp

    일반적인 프로파일링을 위해 wpr.exe 명령줄에 -start GeneralProfile 을 추가하여 공급자의 이벤트와 함께 시스템 이벤트를 캡처할 수도 있습니다. 이벤트만 수집하려면 -start GeneralProfile을 생략합니다.

  4. 이벤트를 포함하는 애플리케이션을 실행합니다.

  5. 추적 캡처를 중지합니다.

    <wpr> 경로\wpr.exe -stop TraceCaptureFile.etl description

    시스템 이벤트를 수집하기 위해 -start GeneralProfile을 추가한 경우 위의 wpr.exe 명령줄에 -stop GeneralProfile을 추가합니다.

2. Windows Phone에서 추적 로깅 이벤트 캡처

  1. 추적 로그를 시작하여 공급자의 이벤트를 캡처합니다.

    cmdd tracelog -start test -f c:\test.etl -guid #providerguid

  2. 테스트 시나리오를 실행하여 이벤트를 기록합니다.

  3. 추적 캡처를 중지합니다.

    cmdd tracelog -stop 테스트

  4. 시스템 추적 결과를 추적 결과와 병합합니다.

    cmdd xperf -merge c:\test.etl c:\testmerged.etl

  5. 병합된 로그 파일을 검색합니다.

    getd c:\testmerged.etl

3. Windows Performance Analyzer를 사용하여 추적 데이터 보기

WPA는 현재 TraceLogging 추적(.etl) 파일을 보는 데 사용할 수 있는 유일한 뷰어입니다.

  1. WPA를 시작합니다.

    <wpr>\wpa.exe traceLoggingResults.etl에 대한 경로

  2. 위의 wpa.exe 명령에서 지정한 추적(.etl) 파일(예: traceLoggingResults.etl)을 로드합니다.

  3. 공급자 이벤트를 봅니다. WPA 그래프 탐색기에서 시스템 작업을 확장합니다.

  4. 제네릭 이벤트 창을 두 번 클릭하여 분석 창에서 이벤트를 봅니다.

    expand generic events

  5. 분석 창에서 공급자에서 이벤트를 찾아 TraceLogging이 작동하는지 확인합니다.

    제네릭 이벤트 테이블의 공급자 이름 열에서 공급자 이름을 가진 행을 찾아 선택합니다.

    정렬할 공급자가 여러 명 있는 경우 열 머리글을 클릭하여 열 이름을 기준으로 정렬하면 공급자를 더 쉽게 찾을 수 있습니다.

    공급자를 찾으면 이름을 마우스 오른쪽 단추로 클릭하고 [선택 영역으로 필터링]을 선택합니다.

    filter selection to provider

    SimpleTraceLoggingProvider 및 해당 값에 대한 이벤트는 분석 창의 아래쪽 창에 표시됩니다. 공급자 이름을 확장하여 이벤트를 확인합니다.

    view the event from the simpletraceloggingprovider

    WPA 사용에 대한 자세한 내용은 Windows Performance Analyzer를 참조하세요.

요약 및 다음 단계

WPR 및 WPA를 사용하여 ETW 이벤트를 기록하고 보는 프로세스는 TraceLogging 이벤트에 동일하게 적용됩니다.

추가 TraceLogging 예제는 C/C++ 추적 로깅 예제 를 참조하세요.