Compartir a través de


Modificadores de seguimiento

Los modificadores de traza permiten habilitar, deshabilitar y filtrar resultados de traza. Son objetos que existen en el código y que se pueden configurar externamente por medio del archivo .config. Existen tres tipos de modificadores de traza incluidos en .NET Framework: las clases BooleanSwitch, TraceSwitch y SourceSwitch. La clase BooleanSwitch actúa como modificador, ya sea habilitando o deshabilitando diversas instrucciones de traza. Las clases TraceSwitch y SourceSwitch le permiten habilitar un modificador de traza en un nivel de traza concreto para que aparezcan los mensajes Trace o TraceSource especificados para dicho nivel y todos sus niveles inferiores. Si deshabilita el modificador, los mensajes de traza no aparecerán. Todas estas clases se derivan de la clase (MustInherit) abstracta Switch, como lo haría cualquier modificador desarrollado por el usuario.

Los modificadores de traza pueden resultar útiles para filtrar información. Por ejemplo, es posible que desee ver todos los mensajes de traza en un módulo de acceso a datos, pero sólo los mensajes de error en el resto de la aplicación. En ese caso, utilizaría un modificador de traza para el acceso a datos y otro para el resto de la aplicación. Utilizando el archivo .config para configurar los modificadores con los valores apropiados, podría controlar qué tipos de mensajes de traza desea recibir. Para obtener más información, vea Cómo: Crear e inicializar modificadores de seguimiento y Cómo: Configurar modificadores de seguimiento.

Normalmente, una aplicación implantada se ejecuta con sus modificadores deshabilitados, de modo que los usuarios no reciban una serie de mensajes de traza irrelevantes ni se rellene un archivo de registro mientras se ejecuta la aplicación. Si ocurre algún problema durante la ejecución de la aplicación, puede detener la aplicación, habilitar los modificadores y volver a iniciar la aplicación. Entonces, podrá ver los mensajes de traza.

Para utilizar un modificador, primero debe crear un objeto modificador desde una clase BooleanSwitch, una clase TraceSwitch o una clase de modificadores definida por el desarrollador. Para obtener más información sobre cómo crear modificadores definidos por el desarrollador, vea Switch (clase), en la Referencia de .NET Framework. A continuación, se establece un valor de configuración que especifica cuándo se va a utilizar el objeto modificador. Por último, se prueba el valor del objeto modificador en varios métodos de traza Trace (o Debug).

Niveles de traza

Cuando se utiliza TraceSwitch, es preciso hacer algunas consideraciones adicionales. Un objeto TraceSwitch presenta cuatro propiedades que devuelven valores de tipo Boolean que indican si el modificador se ha definido, como mínimo, hasta un nivel determinado:

Los niveles permiten limitar la cantidad de información de traza que se recibe a la información estrictamente necesaria para resolver un problema. El nivel de detalle que se desea en la información de traza se especifica configurando los modificadores de traza al nivel apropiado. Puede recibir mensajes de error, mensajes de advertencia, mensajes informativos, mensajes de traza detallados o ningún mensaje.

El usuario puede decidir plenamente qué tipo de mensaje desea asociar a cada nivel. Normalmente, el contenido de los mensajes de traza depende de la información que se asocia a cada nivel, pero los distintos niveles pueden presentar información diferente. Por ejemplo, podría suministrar descripciones detalladas de un problema en el nivel 3 (Info), y sólo un número de referencia de error en el nivel 1 (Error). Depende plenamente del usuario decidir el esquema que mejor conviene a la aplicación.

Estas propiedades corresponden a los valores 1 a 4 de la enumeración TraceLevel. La tabla siguiente muestra los niveles de la enumeración TraceLevel y sus valores.

Valor enumerado

Valor entero

Tipo de mensaje mostrado (o escrito en un destino de salida especificado)

Off

0

Ninguno

Error

1

Sólo mensajes de error

Warning

2

Mensajes de advertencia y mensajes de error

Info

3

Mensajes informativos, mensajes de advertencia y mensajes de error

Verbose

4

Mensajes detallados, mensajes informativos, mensajes de advertencia y mensajes de error

Las propiedades de TraceSwitch indican el nivel de traza máximo para el modificador. Es decir, la información de traza se escribe para el nivel especificado así como para todos los niveles inferiores. Por ejemplo, si TraceInfo es true, entonces TraceError y TraceWarning también presentan el valor true, pero TraceVerbose también podría ser false.

Estas propiedades son de sólo lectura. El objeto TraceSwitch define esas propiedades automáticamente cuando se define la propiedad TraceLevel. Por ejemplo:

Dim myTraceSwitch As New TraceSwitch("SwitchOne", "The first switch")
myTraceSwitch.Level = TraceLevel.Info
' This message box displays true, becuase setting the level to
' TraceLevel.Info sets all lower levels to true as well.
MessageBox.Show(myTraceSwitch.TraceWarning.ToString())
' This messagebox displays false.
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString())
System.Diagnostics.TraceSwitch myTraceSwitch = 
   new System.Diagnostics.TraceSwitch("SwitchOne", "The first switch");
myTraceSwitch.Level = System.Diagnostics.TraceLevel.Info;
// This message box displays true, becuase setting the level to 
// TraceLevel.Info sets all lower levels to true as well.
MessageBox.Show(myTraceSwitch.TraceWarning.ToString());
// This message box displays false.
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString());
System.Diagnostics.TraceSwitch myTraceSwitch =
   new System.Diagnostics.TraceSwitch("SwitchOne", "The first switch");
myTraceSwitch.set_Level(System.Diagnostics.TraceLevel.Info);
// This message box displays true, becuase setting the level to 
// TraceLevel.Info sets all lower levels to true as well.
MessageBox.Show(Convert.ToString(myTraceSwitch.get_TraceWarning()));
// This message box displays false.
MessageBox.Show(Convert.ToString(myTraceSwitch.get_TraceVerbose()));}

Modificadores definidos por el desarrollador

Además de BooleanSwitch y TraceSwitch, puede definir sus propios modificadores heredando de la clase Switch y reemplazando los métodos de la clase base por métodos personalizados. Para obtener más información sobre cómo crear modificadores definidos por el desarrollador, vea Switch (clase), en la Referencia de .NET Framework.

Vea también

Tareas

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

Cómo: Configurar modificadores de seguimiento

Conceptos

Agentes de escucha de seguimiento

Introducción a la instrumentación y el seguimiento

Otros recursos

Seguimiento e instrumentación de aplicaciones