Compartilhar via


Registrar e exibir eventos de log de rastreamento

Você pode usar muitas ferramentas para coletar e decodificar eventos ETW do TraceLogging.

  • Para controlar a sessão de rastreamento, use ferramentas como WPR, tracelog ou traceview.
  • Para decodificar eventos de uma sessão, use ferramentas como WPA, tracefmt ou traceview.

Este exemplo mostra como registrar eventos de Log de Rastreamento com o WPR (Gravador de Desempenho do Windows) e exibi-los com o WPA (Windows Performance Analyzer).

Pré-requisitos

  • Windows 10
  • A versão Windows 10 do WPR (Windows Performance Recorder) e a versão Windows 10 do WPA (Windows Performance Analyzer), que faz parte do Windows ADK (Kit de Avaliação e Implantação do Windows®).

Importante

Os rastreamentos capturados com TraceLogging devem ser capturados com a versão Windows 10 do Gravador de Desempenho do Windows e exibidos com a versão Windows 10 do Windows Performance Analyzer. Se você não conseguir capturar ou decodificar seus eventos, verifique se está usando a versão Windows 10 das ferramentas.

1. Capturar dados de rastreamento com WPR

Para capturar um rastreamento em Windows Phone, consulte Capturar eventos de rastreamento de log no Windows Phone abaixo.

Crie um perfil do Gravador de Desempenho do Windows (.wprp) para que você possa usar o WPR para capturar seus eventos de log de rastreamento.

Crie um . Arquivo WPRP

  1. Use o exemplo WPRP a seguir com o exemplo de código nativo no Início Rápido do C/C++ de Log de Rastreamento ou o exemplo gerenciado no Início Rápido Gerenciado do TraceLogging. Se você estiver registrando eventos de seu próprio provedor, substitua as TODO seções pelos valores apropriados para seu provedor.

    Importante

    Se você estiver usando o início rápido de C/C++ do TraceLogging, especifique o GUID do provedor no Name atributo do <EventProvider> elemento . Por exemplo: <EventProvider Id="EventProvider_SimpleTraceLoggingProvider" Name="0205c616-cf97-5c11-9756-56a2cee02ca7" />. Se você estiver usando o início rápido do TraceLogging gerenciado, especifique o nome do provedor precedido por * no Name atributo do <EventProvider /> elemento . Por exemplo, <EventProvider Name="*SimpleTraceLoggingProvider" />.

    Arquivo WPRP de exemplo:

    <?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. Salve o arquivo com um . Extensão de nome de arquivo WPRP.

  3. Inicie a captura usando o WPR de uma janela do Prompt de Comando com privilégios elevados (executar como Administrador).

    <caminho para wpr>\wpr.exe -start GeneralProfile -start TraceLoggingProvider.wprp

    Dica

    Para fins gerais de criação de perfil, você também pode adicionar -start GeneralProfile à linha de comando wpr.exe para capturar eventos do sistema junto com os eventos do seu provedor. Se você quiser apenas reunir seus eventos, omita -start GeneralProfile.

  4. Execute o aplicativo que contém seus eventos.

  5. Interrompa a captura de rastreamento.

    <caminho para wpr>\wpr.exe -stop TraceCaptureFile.etl description

    Dica

    Se você adicionou -start GeneralProfile para coletar eventos do sistema, adicione -stop GeneralProfile à linha de comando wpr.exe acima.

2. Capturar eventos do TraceLogging em Windows Phone

  1. Inicie o rastreamento para capturar eventos do provedor.

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

  2. Execute seu cenário de teste para registrar eventos em log.

  3. Interromper a captura de rastreamento.

    cmdd tracelog -stop test

  4. Mescle os resultados do rastreamento do sistema com os resultados do rastreamento.

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

  5. Recupere o arquivo de log mesclado.

    getd c:\testmerged.etl

3. Exibir dados do TraceLogging usando o Windows Performance Analyzer

No momento, o WPA é o único visualizador que você pode usar para exibir arquivos de rastreamento do TraceLogging (.etl).

  1. Inicie o WPA.

    <caminho para wpr>\wpa.exe traceLoggingResults.etl

  2. Carregue o arquivo de rastreamento (.etl) especificado no comando wpa.exe acima, por exemplo, traceLoggingResults.etl.

  3. Exiba os eventos do provedor. No Explorer do WPA Graph, expanda Atividade do Sistema.

  4. Clique duas vezes no painel Eventos Genéricos para exibir os eventos no painel Análise .

    expandir eventos genéricos

  5. No painel Análise, localize os eventos do provedor para verificar se o TraceLogging está funcionando.

    Na coluna Nome do Provedor da tabela Eventos Genéricos , localize e selecione a linha com o nome do provedor.

    Se você tiver vários provedores para classificar, clique no cabeçalho da coluna para classificar por nome de coluna, o que pode facilitar a localização do provedor.

    Quando encontrar seu provedor, clique com o botão direito do mouse no nome e selecione Filtrar para Seleção.

    filtrar seleção para o provedor

    O evento para o SimpleTraceLoggingProvider e seu valor aparecerão no painel inferior da janela Análise. Expanda o nome do provedor para ver os eventos.

    exibir o evento do simpletraceloggingprovider

    Para obter mais informações sobre como usar o WPA, consulte Windows Performance Analyzer.

Resumo e próximas etapas

O processo de gravação e exibição de eventos ETW usando WPR e WPA se aplica igualmente bem a eventos traceLogging.

Confira Exemplos de log de rastreamento do C/C++ para obter exemplos adicionais de TraceLogging.