Share via


記錄和檢視 TraceLogging 事件

您可以使用許多工具來收集及解碼 TraceLogging ETW 事件。

  • 若要控制追蹤會話,請使用 WPR、tracelog 或 traceview 等工具。
  • 若要從會話解碼事件,請使用 WPA、tracefmt 或 traceview 等工具。

此範例示範如何使用 Windows Performance Recorder (WPR) 記錄 TraceLogging 事件,並使用 Windows 效能分析器 (WPA) 加以檢視。

必要條件

  • Windows 10
  • Windows 10版本的 Windows Performance Recorder (WPR) ,以及屬於 Windows® ADK) Windows ADK) Windows (效能分析器 (WPA) 的 windows Windows 10 版本。

重要

使用 TraceLogging 擷取的追蹤必須使用 windows Performance Recorder 的 Windows 10 版本進行擷取,並使用 Windows 效能分析器 的 Windows 10 版本進行檢視。 如果您無法擷取或解碼事件,請確認您使用工具的Windows 10版本。

1.使用 WPR 擷取追蹤資料

若要擷取Windows Phone上的追蹤,請參閱下方Windows Phone擷取 TraceLogging 事件。

建立 Windows Performance Recorder 設定檔 (.wprp) ,讓您可以使用 WPR 來擷取追蹤記錄事件。

建立 。WPRP 檔案

  1. 使用下列 WPRP 範例搭配 TraceLogging C/C++ 快速入門 中的原生程式碼範例,或 TraceLogging Managed 快速入門中的 Managed範例。 如果您要從自己的提供者記錄事件,請將 TODO 區段取代為您提供者的適當值。

    重要

    如果您使用 TraceLogging C/C++ 快速入門,請在 專案的 屬性 <EventProvider>Name 指定提供者 GUID。 例如:<EventProvider Id="EventProvider_SimpleTraceLoggingProvider" Name="0205c616-cf97-5c11-9756-56a2cee02ca7" />。 如果您使用 Managed TraceLogging 快速入門,請在 元素的 屬性中 Name 指定 開頭 *<EventProvider /> 提供者名稱。 例如: <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

    提示

    為了進行一般分析,您也可以將 -start GeneralProfile 新增至 wpr.exe 命令列,以擷取系統事件以及提供者的事件。 如果您只想收集事件,請省略 -start GeneralProfile

  4. 執行包含事件的應用程式。

  5. 停止追蹤擷取。

    <wpr> 的路徑\wpr.exe -stop TraceCaptureFile.etl description

    提示

    如果您已新增 -start GeneralProfile 以收集系統事件,請將 -stop GeneralProfile 新增至上述 wpr.exe 命令列。

2.擷取Windows Phone上的 TraceLogging 事件

  1. 啟動追蹤記錄,以從您的提供者擷取事件。

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

  2. 執行測試案例以記錄事件。

  3. 停止追蹤擷取。

    cmdd tracelog -stop test

  4. 將系統追蹤結果與您的追蹤結果合併。

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

  5. 擷取合併的記錄檔。

    getd c:\testmerged.etl

3.使用 Windows 效能分析器檢視 TraceLogging 資料

WPA 目前是唯一可用來檢視 TraceLogging 追蹤 (.etl) 檔案的檢視器。

  1. 啟動 WPA。

    <wpr >\wpa.exe traceLoggingResults.etl 的路徑

  2. 載入您在上述wpa.exe命令中指定的追蹤 (.etl) 檔案,例如 traceLoggingResults.etl。

  3. 檢視您的提供者事件。 在 [WPA Graph 總管] 中,展開 [系統活動]。

  4. 按兩下 [ 一般事件] 窗格,以檢視 [分析 ] 窗格中的事件。

    展開泛型事件

  5. 在 [分析] 窗格中,找出提供者的事件,以確認 TraceLogging 是否正常運作。

    [泛型事件]資料表的 [提供者名稱] 資料行中,尋找並選取具有提供者名稱的資料列。

    如果您有多個提供者可排序,請按一下資料行標頭來排序資料行名稱,這可讓您更輕鬆地找到您的提供者。

    當您找到您的提供者時,以滑鼠右鍵按一下名稱,然後選取 [ 篩選至選取範圍]。

    篩選對提供者的選取範圍

    SimpleTraceLoggingProvider 及其值的事件會出現在 [分析] 視窗的底部窗格中。 展開提供者名稱以查看事件。

    從 simpletraceloggingprovider 檢視事件

    如需使用 WPA 的詳細資訊,請參閱Windows 效能分析器

摘要和後續步驟

使用 WPR 和 WPA 錄製和檢視 ETW 事件的程式同樣適用于 TraceLogging 事件。

如需其他 TraceLogging 範例,請參閱 C/C++ 追蹤 記錄範例。