Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 de 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.
Eventos log tracelogging
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
Registro de 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 que se haya anotado con el atributo [EventData] 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 atributo [EventData] 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
Consulte Registrar y mostrar eventos de registro de seguimiento para obtener información sobre cómo capturar y ver los datos de seguimiento mediante las versiones internas más recientes de las Herramientas de rendimiento de Windows (WPT).
Consulte ejemplos de seguimiento de .NET para obtener más ejemplos de seguimiento administrados.