Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A seção a seguir descreve as etapas básicas necessárias para adicionar TraceLogging ao código .NET.
Pré-requisitos
- .NET 4.6 ou posterior.
SimpleTraceLoggingExample.cs
Este exemplo demonstra como registrar eventos TraceLogging sem a necessidade de criar manualmente um arquivo XML de manifesto de instrumentação separado.
using System;
using System.Diagnostics.Tracing;
namespace SimpleTraceLoggingExample
{
class Program
{
private static EventSource log = new EventSource("SimpleTraceLoggingProvider");
static void Main(string[] args)
{
log.Write("Event 1"); // write an event with no fields
log.Write("Event 2", new { someEventData = DateTime.Now }); // Sending an anonymous type as event data
ExampleStructuredData EventData = new ExampleStructuredData() { TransactionID = 1234, TransactionDate = DateTime.Now };
log.Write("Event 3", EventData); // Sending a class decorated with [EventData] as event data
}
}
[EventData] // [EventData] makes it possible to pass an instance of the class as an argument to EventSource.Write()
public sealed class ExampleStructuredData
{
public int TransactionID { get; set; }
public DateTime TransactionDate { get; set; }
}
}
Criar o EventSource
Antes de registrar eventos, você deve criar uma instância da classe EventSource. O primeiro parâmetro do construtor identifica o nome desse provedor. O provedor é automaticamente registrado para você, como ilustrado no exemplo.
private static EventSource log = new EventSource("SimpleTraceLoggingProvider");
A instância é estática porque deve haver apenas uma instância de um provedor específico em seu aplicativo de cada vez.
Registrar eventos TraceLogging
Depois que o provedor é criado, o código a seguir do exemplo acima registra um evento simples.
log.Write("Event 1"); // write an event with no fields
Registrar dados de carga útil de eventos estruturados
Você pode definir dados de carga útil estruturados que são registrados com o evento. Forneça dados de carga estruturada como um tipo anônimo ou como uma instância de uma classe que foi anotada com o atributo [EventData], conforme mostrado no exemplo a seguir.
log.Write("Event 2", new { someEventData = DateTime.Now }); // Sending an anonymous type as event data
ExampleStructuredData EventData = new ExampleStructuredData() { TransactionID = 1234, TransactionDate = DateTime.Now };
log.Write("Event 3", EventData); // Sending a class decorated with [EventData] as event data
Você deve adicionar o atributo [EventData] às classes de carga útil do evento que você define conforme mostrado abaixo.
[EventData] // [EventData] makes it possible to pass an instance of the class as an argument to EventSource.Write()
public sealed class ExampleStructuredData
{
public int TransactionID { get; set; }
public DateTime TransactionDate { get; set; }
}
O atributo substitui a necessidade de criar manualmente um arquivo de manifesto para descrever os dados do evento. Agora, tudo o que você precisa fazer é passar uma instância da classe para o método EventSource.Write() para registrar o evento e os dados de carga correspondentes.
Resumo e próximas etapas
Consulte Registrar e Exibir Eventos TraceLogging para obter informações sobre como capturar e exibir dados TraceLogging usando as versões internas mais recentes do WPT (Ferramentas de Desempenho do Windows).
Consulte exemplos de TraceLogging do .NET para obter exemplos de TraceLogging mais gerenciados.