Registrare e visualizzare gli eventi traceLogging

È possibile usare molti strumenti per raccogliere e decodificare gli eventi TraceLogging ETW.

  • Per controllare la sessione di traccia, usare strumenti come WPR, tracelog o traceview.
  • Per decodificare gli eventi da una sessione, usare strumenti come WPA, tracefmt o traceview.

In questo esempio viene illustrato come registrare gli eventi TraceLogging con Windows Performance Recorder (WPR) e visualizzarli con windows analizzatore prestazioni (WPA).

Prerequisiti

  • Windows 10
  • La versione Windows 10 di Windows Performance Recorder (WPR) e la versione Windows 10 di Windows analizzatore prestazioni (WPA) che fa parte® di Windows Assessment and Deployment Kit (Windows ADK).

Importante

Le tracce acquisite con TraceLogging devono essere acquisite con la versione Windows 10 di Windows Performance Recorder e visualizzata con la versione Windows 10 di Windows analizzatore prestazioni. Se non è possibile acquisire o decodificare gli eventi, verificare di usare la versione Windows 10 degli strumenti.

1. Acquisire dati di traccia con WPR

Per acquisire una traccia in Windows Phone, vedere Acquisire eventi TraceLogging in Windows Phone di seguito.

Creare un profilo di Windows Performance Recorder (con estensione wprp) in modo da poter usare WPR per acquisire gli eventi di tracelogging.

Creare un oggetto . File WPRP

  1. Usare l'esempio WPRP seguente con l'esempio di codice nativo nella guida introduttiva TraceLogging C/C++ o nell'esempio gestito in Avvio rapido gestito TraceLogging. Se si registrano eventi dal proprio provider, sostituire le sezioni con i TODO valori appropriati per il provider.

    Importante

    Se si usa l'avvio rapido TraceLogging C/C++, specificare il GUID del provider nell'attributo dell'elemento Name<EventProvider> . Ad esempio: <EventProvider Id="EventProvider_SimpleTraceLoggingProvider" Name="0205c616-cf97-5c11-9756-56a2cee02ca7" />. Se si usa l'avvio rapido TraceLogging gestito, specificare il nome del provider preceduto dall'attributo * dell'elemento Name<EventProvider /> . Ad esempio, <EventProvider Name="*SimpleTraceLoggingProvider" />.

    File WPRP di esempio:

    <?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. Salvare il file con un oggetto . Estensione del nome file WPRP.

  3. Avviare l'acquisizione usando WPR da una finestra del prompt dei comandi con privilegi elevati (esegui come amministratore).

    < path to wpr>\wpr.exe -start GeneralProfile -start TraceLoggingProvider.wprp

    Suggerimento

    Per scopi generali di profilatura, è anche possibile aggiungere -start GeneralProfile alla riga di comando wpr.exe per acquisire eventi di sistema insieme agli eventi del provider. Se si desidera raccogliere solo gli eventi, omettere -start GeneralProfile.

  4. Eseguire l'applicazione contenente gli eventi.

  5. Arrestare l'acquisizione della traccia.

    < path to wpr>\wpr.exe -stop TraceCaptureFile.etl description

    Suggerimento

    Se è stato aggiunto -start GeneralProfile per raccogliere gli eventi di sistema, aggiungere -stop GeneralProfile alla riga di comando wpr.exe precedente.

2. Acquisire eventi TraceLogging in Windows Phone

  1. Avviare il tracelog per acquisire eventi dal provider.

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

  2. Eseguire lo scenario di test per registrare gli eventi.

  3. Arrestare l'acquisizione della traccia.

    cmdd tracelog -stop test

  4. Unire i risultati della traccia di sistema con i risultati della traccia.

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

  5. Recuperare il file di log unito.

    getd c:\testmerged.etl

3. Visualizzare i dati di TraceLogging usando Windows analizzatore prestazioni

WPA è attualmente l'unico visualizzatore che è possibile usare per visualizzare i file di traccia TraceLogging (con estensione etl).

  1. Avviare WPA.

    <path to wpr>\wpa.exe traceLoggingResults.etl

  2. Caricare il file di traccia (con estensione etl) specificato nel comando wpa.exe precedente, ad esempio traceLoggingResults.etl.

  3. Visualizzare gli eventi del provider. In WPA Graph Explorer espandere Attività di sistema.

  4. Fare doppio clic nel riquadro Eventi generici per visualizzare gli eventi nel riquadro Analisi .

    espandere eventi generici

  5. Nel riquadro Analisi individuare gli eventi dal provider per verificare che TraceLogging funzioni.

    Nella colonna Nome provider della tabella Eventi generici trovare e selezionare la riga con il nome del provider.

    Se si dispone di più provider da ordinare, fare clic sull'intestazione di colonna per ordinare in base al nome della colonna che può rendere più facile trovare il provider.

    Quando si trova il provider, fare clic con il pulsante destro del mouse sul nome e scegliere Filtra su Selezione.

    selezione di filtri al provider

    L'evento per SimpleTraceLoggingProvider e il relativo valore verrà visualizzato nel riquadro inferiore della finestra Analysis. Espandere il nome del provider per visualizzare gli eventi.

    visualizzare l'evento dal simpletraceloggingprovider

    Per altre informazioni sull'uso di WPA, vedere Windows analizzatore prestazioni.

Riepilogo e passaggi successivi

Il processo per la registrazione e la visualizzazione di eventi ETW usando WPR e WPA si applicano altrettanto bene agli eventi TraceLogging.

Vedere Esempi di traccia C/C++ per altri esempi di traceLogging.