Traçado circular
O exemplo 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. Este exemplo é baseado na Introdução e inclui um ouvinte de rastreamento personalizado.
Nota
O procedimento de configuração e as instruções de compilação para este exemplo estão localizados no final deste tópico.
Este exemplo pressupõe que você esteja familiarizado com o exemplo de Rastreamento e Registro de Mensagens e tenha lido a documentação fornecida para o exemplo de Rastreamento e Registro de Mensagens .
Ouvinte de rastreamento de buffer circular
O conceito por trás da implementação do Circular Buffer Trace Listener é 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 alterna para um segundo arquivo. Quando o ouvinte atinge o limite para o segundo arquivo - ele substitui o primeiro arquivo com novos rastreamentos.
Esse ouvinte deriva do XmlWriteTraceListener
e permite que os logs sejam exibidos com a Service Trace Viewer Tool (SvcTraceViewer.exe). Ao tentar exibir os logs, os dois arquivos de log podem ser facilmente recombinados abrindo ambos os arquivos de log ao mesmo tempo na ferramenta Service Trace Viewer. 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 adicionando o código a seguir para um ouvinte e elementos de origem. O tamanho máximo do arquivo é especificado definindo o maxFileSizeKB
atributo 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
Certifique-se de ter executado o procedimento de instalação única para os exemplos do Windows Communication Foundation.
Para criar a edição C# ou Visual Basic .NET da solução, siga as instruções em Criando os exemplos do Windows Communication Foundation.
Para executar o exemplo em uma configuração de computador único ou entre computadores, siga as instruções em Executando os exemplos do Windows Communication Foundation.