Compartir a través de


Agentes de escucha de seguimiento

Cuando se utilizan Trace, Debug y TraceSource, debe existir un mecanismo para recopilar y registrar los mensajes que se envían. Los agentes de escucha son los objetos encargados de recibir los mensajes de traza. Un agente de escucha se encarga de recopilar, almacenar y enviar los mensajes de traza. Los agentes de escucha dirigen los resultados de la traza a un destino apropiado, como un registro, una ventana o un archivo de texto.

Existen agentes de escucha disponibles para las clases Debug, Trace y TraceSource, cada una de las cuales puede enviar sus resultados a diversos objetos de agente de escucha. A continuación se muestran los agentes de escucha predefinidos que se usan comúnmente:

  • TextWriterTraceListener redirige el resultado a una instancia de la clase TextWriter o a cualquier elemento que sea una clase Stream. También puede escribir en la consola o en un archivo, ya que éstos dispositivos son clases Stream.

  • Un agente de escucha EventLogTraceListener redirige el resultado a un registro de eventos.

  • Un agente DefaultTraceListener envía mensajes Write y WriteLine a OutputDebugString y al método Debugger.Log. En Visual Studio, esto hace que los mensajes de depuración aparezcan en la ventana de salida. Los mensajes Fail y Assert también se envían a la API OutputDebugString de Windows y al método Debugger.Log, y también se muestran en un cuadro de mensajes. Este comportamiento es el comportamiento predeterminado para los mensajes de Debug y Trace, ya que DefaultTraceListener se incluye automáticamente en cada colección Listeners (es el único agente de escucha que se incluye automáticamente).

  • ConsoleTraceListener dirige el resultado de la traza o la depuración a la salida estándar o a la secuencia de error estándar.  

  • DelimitedListTraceListener dirige el resultado de la traza o la depuración a un escritor de texto, como un escritor de secuencias, o a una secuencia, como una secuencia de archivos. El resultado de la traza tiene un formato de texto delimitado que usa el delimitador especificado por la propiedad Delimiter.     

  • XmlWriterTraceListener dirige el resultado de la traza o la depuración como datos en código XML a un TextWriter o a una Stream, como una FileStream.

Si desea que cualquier agente de escucha, aparte de DefaultTraceListener, reciba el resultado de Debug, Trace y TraceSource, deberá agregarlo a la colección Listeners. Para obtener más información, vea Cómo: Crear e inicializar agentes de escucha de seguimiento y Cómo: Utilizar TraceSource y filtros con agentes de escucha de seguimiento. Cualquier agente de escucha de la colección Listeners recibe los mismos mensajes de los métodos de traza que generan resultados. Suponga, por ejemplo, que establece dos agentes de escucha: un TextWriterTraceListener y un EventLogTraceListener. Cada agente de escucha recibe el mismo mensaje. El agente de escucha TextWriterTraceListener enviaría sus resultados a una secuencia, mientras que el agente EventLogTraceListener los enviaría a un registro de eventos.

El siguiente ejemplo muestra cómo enviar los resultados a la colección Listeners.

' Use this example when debugging.
Debug.WriteLine("Error in Widget 42")
' Use this example when tracing.
Trace.WriteLine("Error in Widget 42")
// Use this example when debugging.
System.Diagnostics.Debug.WriteLine("Error in Widget 42");
// Use this example when tracing.
System.Diagnostics.Trace.WriteLine("Error in Widget 42");

Debug y trace comparten la misma colección Listeners; por lo tanto, si agrega un objeto agente de escucha a una colección Debug.Listeners en la aplicación, también se agregará a la colección Trace.Listeners.

El siguiente ejemplo muestra cómo utilizar un agente de escucha para enviar información de traza a una consola:

Trace.Listeners.Clear()
Trace.Listeners.Add(New TextWriterTraceListener(Console.Out))
System.Diagnostics.Trace.Listeners.Clear();
System.Diagnostics.Trace.Listeners.Add(
   new System.Diagnostics.TextWriterTraceListener(Console.Out));

Agentes de escucha definidos por el programador

Puede definir sus propios agentes de escucha si hereda de la clase base TraceListener y reemplaza sus métodos por métodos personalizados. Para obtener más información sobre cómo crear agentes de escucha definidos por el desarrollador, vea TraceListener en la Referencia de .NET Framework.

Vea también

Referencia

TextWriterTraceListener

EventLogTraceListener

DefaultTraceListener

TraceListener

Conceptos

Introducción a la instrumentación y el seguimiento

Modificadores de seguimiento

Otros recursos

Seguimiento e instrumentación de aplicaciones