Compartir a través de


Escribir mensajes de seguimiento

ASP.NET incluye un objeto Trace (similar a los objetos Response, Request y Context) que permite escribir instrucciones de depuración que aparecen cuando se habilita la característica de seguimiento en una página o en toda la aplicación.

ASP.NET utiliza la clase TraceContext para almacenar información acerca de una solicitud, su jerarquía de control y su información de seguimiento. La información de seguimiento incluye algunas etapas del ciclo de vida de una solicitud de una página y las instrucciones personalizadas que se seleccionen. La clase TraceContext está disponible en las páginas de formularios Web Forms mediante la propiedad Page.Trace. Cuando cree los controles de servidor ASP.NET personalizados mediante la extensión de la clase Control, puede tener acceso a la clase TraceContext a través de la propiedad Control.Context con la sintaxis Control.Context.Trace. No obstante, si desea incluir instrucciones de seguimiento de otros archivos distintos de una página o control, como el archivo Global.asax de la aplicación o una clase que extiende la interfaz IHttpHandler, deberá utilizar la propiedad HttpContext.Current para tener acceso a la clase TraceContext. En este caso, utilice la sintaxis HttpContext.Current.Trace.

La clase TraceContext proporciona dos métodos, Write y Warn, que permiten escribir instrucciones en el registro de seguimiento. Ambos métodos admiten sobrecarga y permiten especificar una categoría de seguimiento, un mensaje de texto e información de error opcional. La única diferencia entre estos dos métodos es que Warn muestra el texto en rojo.

Nota   Cuando se especifica una categoría en una llamada a Write o Warn, es posible utilizarla para ordenar las instrucciones de seguimiento. Para obtener más información, vea Habilitar el seguimiento para una página y Habilitar el seguimiento de nivel de aplicación.

Los dos métodos admiten sobrecarga y tienen tres versiones. Si sólo se especifica una cadena como argumento en la llamada a Warn o Write, ASP.NET la tratará como un mensaje. Si se especifican dos argumentos, el primero se trata como una categoría que podrá utilizarse para establecer el orden de los mensajes en la tabla Información de seguimiento que se muestra cuando el seguimiento está habilitado. El tercer argumento es de tipo Exception y contiene información de error para la solicitud, en caso de que exista alguna.

Cuando se habilita el seguimiento de una página o de una aplicación completa, las instrucciones y el resto de la información de seguimiento aparecen en el explorador que haya efectuado la solicitud.

Nota   Recuerde deshabilitar el seguimiento de las páginas y aplicaciones antes de instalarlas en servidores de producción.

En la pantalla siguiente se muestran instrucciones de seguimiento personalizadas en la tabla Información de seguimiento cuando está habilitado el seguimiento para una página. El método Warn se utiliza para generar el primer mensaje en texto rojo, con la categoría Render y el mensaje Text is about to render!. Con el método Write se genera un segundo mensaje personalizado con la misma categoría, pero con el mensaje Text finished rendering!.

Instrucciones de seguimiento en una página

Para escribir mensajes de seguimiento personalizados en el registro de seguimiento desde una página

  1. En el bloque de declaración de código de la página o en la clase de código en segundo plano, llame a uno de los métodos TraceContext con la propiedad Trace.

  2. Especifique el parámetro opcional category que corresponda a la instrucción de seguimiento. Podrá utilizar esta categoría para ordenar las instrucciones de seguimiento cuando se muestren.

  3. Especifique el parámetro message para la instrucción de seguimiento. Puede tratarse de una cadena o un método.

  4. Especifique el parámetro opcional errorInfo, que contiene información acerca de los posibles errores de la página.

    En el siguiente ejemplo del método TraceContext.Warn se define la categoría Render y el mensaje de seguimiento Text is about to render.

    Trace.Warn("Render", "Text is about to render.");
    [Visual Basic]
    Trace.Warn("Render", "Text is about to render.")
    

Para escribir mensajes de seguimiento personalizados en el registro de seguimiento desde un control de servidor personalizado

  1. En el código de control del servidor, llame a uno de los métodos TraceContext con la propiedad Context.

  2. Especifique el parámetro opcional category que corresponda a la instrucción de seguimiento. Podrá utilizar esta categoría para ordenar las instrucciones de seguimiento cuando se muestren.

  3. Especifique el parámetro message para la instrucción de seguimiento.

  4. Especifique el parámetro opcional errorInfo, que contiene información acerca de los posibles errores de la página.

    En el ejemplo siguiente se utiliza el método TraceContext.Write para escribir instrucciones personalizadas en el registro de seguimiento de un control de servidor. La categoría es My Class, y el mensaje es This is a simple trace.

    Context.Trace.Write("My Class","This is a sample trace statement.");
    [Visual Basic]
    Context.Trace.Write("My Class","This is a sample trace statement.")
    

En ocasiones será conveniente pasar instrucciones a los métodos Write o Warn solamente cuando el seguimiento esté habilitado. El objeto TraceContext tiene una propiedad de tipo Boolean llamada IsEnabled que permite llamar a estos métodos de forma condicional.

Par escribir mensajes de seguimiento en el registro únicamente cuando el seguimiento esté habilitado

  • Cree una instrucción If que compruebe si el seguimiento está habilitado para la página o aplicación a la que corresponda el código, después agregue la instrucción condicional para que se ejecute cuando la propiedad Trace.IsEnabled devuelva el valor true.

    En el ejemplo siguiente se confirma que el seguimiento está habilitado para una página y, a continuación, se utiliza el método Write para escribir varios libros seleccionados de una base de datos en la tabla Información de seguimiento.

    If (Trace.IsEnabled) {
        For (int i=0; i<ds.Tables["Books"].Rows.Count; i++) {
             Trace.Write("Prod",ds.Tables["Books"].Rows[i][0].ToString());
        }
    }
    [Visual Basic]
    If Trace.IsEnabled Then
        For i=0 To ds.Tables("Books").Rows.Count-1
            Trace.Write("Prod",ds.Tables("Books").Rows(i)(0).ToString())
        Next
    End If
    

Vea también

TraceContext (Clase) | Seguimiento de ASP.NET | Page (Clase) | HttpContext (Clase) | Habilitar el seguimiento de nivel de aplicación