Freigeben über


Aufzeichnen und Anzeigen von TraceLogging-Ereignissen

Sie können viele Tools verwenden, um TraceLogging-ETW-Ereignisse zu sammeln und zu decodieren.

  • Verwenden Sie Zum Steuern der Ablaufverfolgungssitzung Tools wie WPR, Tracelog oder Traceview.
  • Verwenden Sie Zum Decodieren von Ereignissen aus einer Sitzung Tools wie WPA, tracefmt oder traceview.

In diesem Beispiel wird gezeigt, wie TraceLogging-Ereignisse mit dem Windows Performance Recorder (WPR) aufgezeichnet und mit dem Windows Leistungsanalyse (WPA) angezeigt werden.

Voraussetzungen

  • Windows 10
  • Die Windows 10 Version von Windows Performance Recorder (WPR) und die Windows 10 Version von Windows Leistungsanalyse (WPA), die Teil des Windows® Assessment and Deployment Kit (Windows ADK) ist.

Wichtig

Mit TraceLogging erfasste Ablaufverfolgungen müssen mit der Windows 10 Version von Windows Performance Recorder erfasst und mit der Windows 10 Version von Windows Leistungsanalyse angezeigt werden. Wenn Sie Ihre Ereignisse nicht erfassen oder decodieren können, überprüfen Sie, ob Sie die Windows 10 Version der Tools verwenden.

1. Erfassen von Ablaufverfolgungsdaten mit WPR

Informationen zum Erfassen einer Ablaufverfolgung in Windows Phone finden Sie unter Erfassen von TraceLogging-Ereignissen auf Windows Phone weiter unten.

Erstellen Sie ein Windows Performance Recorder-Profil (.wprp), damit Sie WPR verwenden können, um Ihre Ablaufverfolgungsereignisse zu erfassen.

Erstellen Sie eine . WPRP-Datei

  1. Verwenden Sie das folgende WPRP-Beispiel mit dem nativen Codebeispiel in der TraceLogging-C/C++-Schnellstartanleitung oder dem verwalteten Beispiel im verwalteten TraceLogging-Schnellstart. Wenn Sie Ereignisse von Ihrem eigenen Anbieter protokollieren, ersetzen Sie die TODO Abschnitte durch die entsprechenden Werte für Ihren Anbieter.

    Wichtig

    Wenn Sie den Schnellstart für TraceLogging C/C++ verwenden, geben Sie die Anbieter-GUID im Name -Attribut des Elements an <EventProvider> . Beispiel: <EventProvider Id="EventProvider_SimpleTraceLoggingProvider" Name="0205c616-cf97-5c11-9756-56a2cee02ca7" />. Wenn Sie den Schnellstart für die verwaltete TraceLogging-Instanz verwenden, geben Sie den Anbieternamen an, der Name mit * im -Attribut des <EventProvider /> Elements vorangestellt wird. Beispiel: <EventProvider Name="*SimpleTraceLoggingProvider" />.

    WPRP-Beispieldatei:

    <?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. Speichern Sie die Datei mit einem . WPRP-Dateinamenerweiterung.

  3. Starten Sie die Erfassung mithilfe von WPR über ein Eingabeaufforderungsfenster mit erhöhten Rechten (als Administrator ausführen).

    < Pfad zu wpr>\wpr.exe -start GeneralProfile -start TraceLoggingProvider.wprp

    Tipp

    Für allgemeine Profilerstellungszwecke können Sie - start GeneralProfile auch der wpr.exe Befehlszeile hinzufügen, um Systemereignisse zusammen mit den Ereignissen ihres Anbieters zu erfassen. Wenn Sie nur Ihre Ereignisse erfassen möchten, lassen Sie -start GeneralProfile aus.

  4. Führen Sie die Anwendung aus, die Ihre Ereignisse enthält.

  5. Beenden Sie die Ablaufverfolgungserfassung.

    < Pfad zu wpr>\wpr.exe -stop TraceCaptureFile.etl description

    Tipp

    Wenn Sie -start GeneralProfile hinzugefügt haben, um Systemereignisse zu erfassen, fügen Sie -stop GeneralProfile der obigenwpr.exe Befehlszeile hinzu.

2. Erfassen von TraceLogging-Ereignissen auf Windows Phone

  1. Starten Sie das Ablaufverfolgungsprotokoll, um Ereignisse von Ihrem Anbieter zu erfassen.

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

  2. Führen Sie Ihr Testszenario aus, um Ereignisse zu protokollieren.

  3. Beenden Sie die Ablaufverfolgungserfassung.

    cmdd tracelog -stop test

  4. Führen Sie die Ergebnisse der Systemablaufverfolgung mit Ihren Ablaufverfolgungsergebnissen zusammen.

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

  5. Rufen Sie die zusammengeführte Protokolldatei ab.

    getd c:\testmerged.etl

3. Anzeigen von TraceLogging-Daten mithilfe von Windows Leistungsanalyse

WPA ist derzeit der einzige Viewer, den Sie zum Anzeigen von TraceLogging-Ablaufverfolgungsdateien (.etl) verwenden können.

  1. Starten Sie WPA.

    <Pfad zu wpr>\wpa.exe traceLoggingResults.etl

  2. Laden Sie die Ablaufverfolgungsdatei (ETL), die Sie oben im wpa.exe-Befehl angegeben haben, z. B. traceLoggingResults.etl.

  3. Zeigen Sie Ihre Anbieterereignisse an. Erweitern Sie im WPA Graph-Explorer die Option Systemaktivität.

  4. Doppelklicken Sie im Bereich Generische Ereignisse , um die Ereignisse im Bereich Analyse anzuzeigen.

    generische Ereignisse erweitern

  5. Suchen Sie im Bereich Analyse nach den Ereignissen Ihres Anbieters, um zu überprüfen, ob TraceLogging funktioniert.

    Suchen Sie in der Spalte Anbietername der Tabelle Generische Ereignisse die Zeile mit ihrem Anbieternamen, und wählen Sie sie aus.

    Wenn Sie mehrere Anbieter durchsortieren müssen, klicken Sie auf die Spaltenüberschrift, um nach Spaltennamen zu sortieren, was die Suche nach Ihrem Anbieter erleichtern kann.

    Wenn Sie Ihren Anbieter gefunden haben, klicken Sie mit der rechten Maustaste auf den Namen, und wählen Sie Nach Auswahl filtern aus.

    Filterauswahl zum Anbieter

    Das Ereignis für den SimpleTraceLoggingProvider und sein Wert werden im unteren Bereich des Analysefensters angezeigt. Erweitern Sie den Anbieternamen, um die Ereignisse anzuzeigen.

    Anzeigen des Ereignisses aus dem simpletraceloggingprovider

    Weitere Informationen zur Verwendung von WPA finden Sie unter Windows Leistungsanalyse.

Zusammenfassung und nächste Schritte

Der Prozess zum Aufzeichnen und Anzeigen von ETW-Ereignissen mit WPR und WPA gilt gleichermaßen für TraceLogging-Ereignisse.

Weitere TraceLogging-Beispiele finden Sie unter C/C++-Ablaufverfolgungsbeispiele .