Compartir a través de


Cómo: 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. Uno de esos agentes de escucha, System.Diagnostics.DefaultTraceListener, se crea e inicializa automáticamente cuando se habilita la traza o la depuración. Si desea que los resultados de Trace o de Debug se envíen a otros orígenes adicionales, debe crear e inicializar agentes de escucha de traza 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 obtener más información, vea Agentes de escucha de traza.

Puede crear agentes de escucha de traza 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 necesita 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. Use 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();
    

Para crear y usar 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 el resultado a través de un agente de escucha independiente de la colección Listeners si llama a los métodos de salida propios del agente de escucha. En el ejemplo siguiente se muestra cómo escribir una línea en un agente de escucha que no está 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();
    

Vea también

Tareas

Cómo: Realizar el seguimiento del código en una aplicación

Cómo: Agregar instrucciones de seguimiento al código de una aplicación

Conceptos

Agentes de escucha de seguimiento

Modificadores de seguimiento

Otros recursos

Seguimiento e instrumentación de aplicaciones