Procedimiento para crear e inicializar agentes de escucha de seguimiento

Las clases System.Diagnostics.Debug y System.Diagnostics.Trace envían mensajes a objetos denominados agentes de escucha que reciben y procesan estos mensajes. Un agente de escucha de este tipo, System.Diagnostics.DefaultTraceListener, se crea y se inicializa automáticamente si la traza o la depuración está habilitada. Si desea que los resultados de Trace o Debug se envíen a otros destinos adicionales, deberá crear e inicializar agentes de escucha adicionales.

Los agentes de escucha que cree deben reflejar las necesidades de la aplicación. Por ejemplo, si desea un registro de texto de todo el resultado de traza, cree un agente de escucha TextWriterTraceListener, que escribe todo el resultado en un nuevo archivo de texto cuando se habilita. Por otra parte, si desea ver el resultado solo durante la ejecución de la aplicación, cree un agente de escucha ConsoleTraceListener, que envía todo el resultado a una ventana de consola. EventLogTraceListener puede dirigir el resultado de traza a un registro de eventos. Para más información, vea Agentes de escucha de seguimiento.

Puede crear agentes de escucha de seguimiento en un archivo de configuración de la aplicación o en el código. Se recomienda el uso de archivos de configuración de la aplicación, ya que permiten agregar, modificar o quitar agentes de escucha de traza sin necesidad de modificar el código.

Para crear y usar un agente de escucha de traza mediante un archivo de configuración

  1. Declare el agente de escucha de traza en el archivo de configuración de la aplicación. Si el agente de escucha que va a crear requiere otros objetos, declárelos también. En el ejemplo siguiente, se muestra cómo crear un agente de escucha denominado myListener que escribe en el archivo de texto TextWriterOutput.log.

    <configuration>
      <system.diagnostics>
        <trace autoflush="false" indentsize="4">
          <listeners>
            <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TextWriterOutput.log" />
            <remove name="Default" />
          </listeners>
        </trace>
      </system.diagnostics>
    </configuration>
    
  2. Utilice la clase Trace en el código para escribir un mensaje a los agentes de escucha de traza.

    Trace.TraceInformation("Test message.")
    ' You must close or flush the trace to empty the output buffer.
    Trace.Flush()
    
    Trace.TraceInformation("Test message.");
    // You must close or flush the trace to empty the output buffer.
    Trace.Flush();
    

Crear y utilizar un agente de escucha de traza en el código

  • Agregue el agente de escucha de traza a la colección Listeners y envíe información de traza a los agentes de escucha.

    Trace.Listeners.Add(New TextWriterTraceListener("TextWriterOutput.log", "myListener"))
    Trace.TraceInformation("Test message.")
    ' You must close or flush the trace to empty the output buffer.
    Trace.Flush()
    
    Trace.Listeners.Add(new TextWriterTraceListener("TextWriterOutput.log", "myListener"));
    Trace.TraceInformation("Test message.");
    // You must close or flush the trace to empty the output buffer.
    Trace.Flush();
    

    O bien

  • Si no desea que el agente de escucha reciba el resultado de la traza, no lo agregue a la colección Listeners. Puede emitir la salida a través de un agente de escucha independientemente de la colección Listeners, llamando a los propios métodos de salida del agente de escucha. El siguiente ejemplo muestra cómo escribir una línea a un agente de escucha que no se encuentra en la colección Listeners:

    Dim myListener As New TextWriterTraceListener("TextWriterOutput.log", "myListener")
    myListener.WriteLine("Test message.")
    ' You must close or flush the trace listener to empty the output buffer.
    myListener.Flush()
    
    TextWriterTraceListener myListener = new TextWriterTraceListener("TextWriterOutput.log", "myListener");
    myListener.WriteLine("Test message.");
    // You must close or flush the trace listener to empty the output buffer.
    myListener.Flush();
    

Consulte también