Compartilhar via


Rastreamento circular

O exemplo de CircularTracing demonstra a implementação de um ouvinte de rastreamento de buffer circular. Um cenário comum para serviços de produção é ter serviços disponíveis por longos períodos de tempo e ter o log de rastreamento habilitado em um nível baixo. Esses serviços consomem muito espaço em disco. Ao solucionar problemas de um serviço, os dados mais recentes no log de rastreamento são relevantes para resolver um problema. Este exemplo demonstra uma implementação de um ouvinte de rastreamento de buffer circular no qual apenas os rastreamentos mais recentes são mantidos no disco até uma quantidade configurável de dados. Esse exemplo é baseado na Introdução e inclui um ouvinte de rastreamento personalizado.

Observação

O procedimento de instalação e as instruções de compilação dessa amostra estão no final deste tópico.

Esse exemplo pressupõe que você esteja familiarizado com o exemplo de Rastreamento e Log de Mensagens e tenha lido a documentação fornecida para o exemplo de Rastreamento e log de mensagens.

Ouvinte de rastreamento de buffer circular

O conceito por trás da implementação do Ouvinte de Rastreamento de Buffer Circular é ter dois arquivos que podem armazenar até metade do total de dados de log de rastreamento desejados. O ouvinte cria um arquivo e grava nesse arquivo até atingir o limite de metade do tamanho dos dados, momento em que ele alterna para um segundo arquivo. Quando o ouvinte atinge o limite do segundo arquivo, substitui o primeiro arquivo por novos rastreamentos.

Esse ouvinte deriva do XmlWriteTraceListener e permite que os logs sejam exibidos com a Ferramenta do Visualizador de Rastreamento de Serviço (SvcTraceViewer.exe). Ao tentar exibir os logs, os dois arquivos de log podem ser recombinados facilmente ao abrir ambos os arquivos de log ao mesmo tempo na ferramenta Visualizador de Rastreamento de Serviço. A ferramenta Visualizador de Rastreamento de Serviço cuida automaticamente da classificação dos rastreamentos para que eles apareçam na ordem correta.

Configuração

Um serviço pode ser configurado para usar o Ouvinte de Rastreamento de Buffer Circular ao adicionar o código a seguir para um ouvinte e elementos de origem. O tamanho máximo do arquivo é especificado definindo-se o atributo maxFileSizeKB na configuração do ouvinte de rastreamento circular. Isso é demonstrado no código a seguir.

<system.diagnostics>
  <sources>
    <source name="System.ServiceModel" switchValue="Information,ActivityTracing" propagateActivity="true">
      <listeners>
        <add name="CircularTraceListener" />
      </listeners>
    </source>
  </sources>
  <sharedListeners>
    <add name="CircularTraceListener" type="Microsoft. Samples.ServiceModel.CircularTraceListener,CircularTraceListener"
         initializeData="c:\logs\CircularTracing-service.svclog" maxFileSizeKB="100" />
  </sharedListeners>
  <trace autoflush="true" />
</system.diagnostics>

Para configurar, compilar, e executar o exemplo

  1. Verifique se você executou as Amostras de Procedimento de Instalação Única para o Windows Communication Foundation.

  2. Para compilar a edição .NET do C# ou do Visual Basic da solução, siga as instruções contidas em Como Compilar as Amostras do Windows Communication Foundation.

  3. Para executar o exemplo em uma configuração de computador único ou em vários, siga as instruções em Como executar os exemplos do Windows Communication Foundation.

Confira também