Inicio rápido administrado del registro de seguimiento
En la sección siguiente se describen los pasos básicos necesarios para agregar TraceLogging al código de .NET.
Prerrequisitos
- .NET 4.6 o posterior.
SimpleTraceLoggingExample.cs
En este ejemplo se muestra cómo registrar eventos traceLogging sin necesidad de crear manualmente un archivo XML de manifiesto de instrumentación independiente.
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; }
}
}
Creación del eventSource
Para poder registrar eventos, debe crear una instancia de la clase EventSource. El primer parámetro de constructor identifica el nombre de este proveedor. El proveedor se registra automáticamente como se muestra en el ejemplo.
private static EventSource log = new EventSource("SimpleTraceLoggingProvider");
La instancia es estática porque solo debe haber una instancia de un proveedor específico en la aplicación a la vez.
Registro de eventos de seguimiento
Una vez creado el proveedor, el código siguiente del ejemplo anterior registra un evento simple.
log.Write("Event 1"); // write an event with no fields
Registrar datos de carga de eventos estructurados
Puede definir los datos de carga estructurados que se registran con el evento . Proporcione datos de carga estructurados como un tipo anónimo o como una instancia de una clase anotada con el [EventData]
atributo tal como se muestra en el ejemplo siguiente.
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
Debe agregar el [EventData]
atributo a las clases de carga de eventos que defina como se muestra a continuación.
[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; }
}
El atributo reemplaza la necesidad de crear manualmente un archivo de manifiesto para describir los datos del evento. Ahora todo lo que tiene que hacer es pasar una instancia de la clase al método EventSource.Write() para registrar el evento y los datos de carga correspondientes.
Resumen y pasos siguientes
Consulta Registrar y mostrar eventos de registro de seguimiento para obtener información sobre cómo capturar y ver los datos de TraceLogging con las versiones internas más recientes de Windows Performance Tools (WPT).
Consulte Ejemplos de seguimiento de .NET para obtener ejemplos de seguimiento más administrados.