Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O exemplo ExtendingTracing demonstra como estender o recurso de rastreamento do WCF (Windows Communication Foundation) escrevendo rastreamentos de atividade definidos pelo usuário no código do cliente e do serviço. Gravar rastreamentos de atividade definidos pelo usuário permite que o usuário crie atividades de rastreamento e agrupar rastreamentos em unidades lógicas de trabalho. Também é possível correlacionar atividades por meio de transferências (dentro do mesmo ponto de extremidade) e propagação (entre pontos de extremidade). Neste exemplo, o rastreamento está habilitado para o cliente e o serviço. Para obter mais informações sobre como habilitar o rastreamento em arquivos de configuração de cliente e serviço, consulte Rastreamento e Log de Mensagens.
Este exemplo é baseado no Começando.
Observação
O procedimento de configuração e as instruções de build para este exemplo estão localizados no final deste tópico.
Rastreamento e Propagação de Atividades
O rastreamento de atividade definido pelo usuário permite que o usuário crie suas próprias atividades de rastreamento para agrupar rastreamentos em unidades lógicas de trabalho, correlacionar atividades por meio de transferências e propagação e diminuir o custo de desempenho do rastreamento WCF (por exemplo, o custo de espaço em disco de um arquivo de log).
Adicionar fontes personalizadas
Os rastreamentos definidos pelo usuário podem ser adicionados ao código do cliente e do serviço. A adição de fontes de rastreamento aos arquivos de configuração de cliente ou serviço permite que esses rastreamentos personalizados sejam gravados e exibidos na Ferramenta visualizador de rastreamento de serviço (SvcTraceViewer.exe). O código a seguir mostra como adicionar uma fonte de rastreamento definida pelo usuário nomeada ServerCalculatorTraceSource ao arquivo de configuração.
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="xml">
<filter type="" />
</add>
</listeners>
</source>
<source name="ServerCalculatorTraceSource" switchValue="Information,ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="xml">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\logs\ServerTraces.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml" traceOutputOptions="Callstack">
<filter type="" />
</add>
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
....
Correlacionar atividades
Para correlacionar atividades diretamente entre pontos de extremidade, o atributo propagateActivity deve ser definido como true na fonte de rastreamento System.ServiceModel. Além disso, para propagar rastreamentos sem passar pelas atividades do WCF, o Rastreamento de Atividade do ServiceModel deve ser desativado. Isso pode ser visto no exemplo de código a seguir.
Observação
Desativar o Rastreamento de Atividade ServiceModel não é o mesmo que ter o nível de rastreamento, indicado pela switchValue propriedade, definido como desativado.
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
...
</source>
</sources>
</system.diagnostics>
Reduzir o custo de desempenho
Configurar ActivityTracing para desativado na fonte de rastreamento System.ServiceModel gera um arquivo que contém apenas rastreamentos de atividade definidos pelo usuário, sem incluir rastreamentos de atividade do ServiceModel. Excluir rastreamentos de atividade ServiceModel resulta em um arquivo de log muito menor. No entanto, a oportunidade de correlacionar registros de processamento do WCF é perdida.
Configurar, compilar e executar o exemplo
Verifique se você executou o Procedimento de instalação avulsa dos exemplos do Windows Communication Foundation.
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.
Para executar o exemplo em uma configuração de computador único ou cruzado, siga as instruções em Executar os exemplos do Windows Communication Foundation.