Compartir a través de


Modificadores de seguimiento

Nota:

Este artículo es específico de .NET Framework. No se aplica a implementaciones más recientes de .NET, incluidas .NET 6 y versiones posteriores.

Los interruptores de seguimiento permiten habilitar, deshabilitar y filtrar el seguimiento. Son objetos que existen en el código y se pueden configurar externamente a través del archivo .config. Hay tres tipos de modificadores de seguimiento proporcionados en .NET Framework: la clase BooleanSwitch, la clase TraceSwitch y la clase SourceSwitch. La BooleanSwitch clase actúa como interruptor, habilitando o deshabilitando una variedad de enunciados de seguimiento. Las clases TraceSwitch y SourceSwitch permiten habilitar un interruptor de rastreo para un nivel de rastreo determinado para que los mensajes Trace o TraceSource especificados para ese nivel y todos los niveles por debajo aparezcan. Si desactiva el interruptor, no aparecerán los mensajes de seguimiento. Todas estas clases derivan de la clase abstracta (MustInherit) Switch, tal como cualquier interruptor desarrollado por el usuario debería hacer.

Los interruptores de rastreo pueden ser útiles para filtrar información. Por ejemplo, es posible que desee ver todos los mensajes de seguimiento en un módulo de acceso a datos, pero solo los mensajes de error en el resto de la aplicación. En ese caso, usaría un modificador de seguimiento para el módulo de acceso a datos y otro para el resto de la aplicación. Mediante el uso del archivo .config para configurar los interruptores en las configuraciones apropiadas, podría controlar qué tipos de mensajes de seguimiento podría recibir. Para obtener más información, consulte Cómo: Crear, Inicializar y Configurar Interruptores de Seguimiento.

Normalmente, una aplicación implementada se ejecuta con sus modificadores deshabilitados, por lo que los usuarios no necesitan observar muchos mensajes de seguimiento irrelevantes que aparecen en una pantalla o rellenar un archivo de registro a medida que se ejecuta la aplicación. Si surge un problema durante la ejecución de la aplicación, puede detener la aplicación, habilitar los modificadores y reiniciar la aplicación. A continuación, se mostrarán los mensajes de seguimiento.

Para usar un interruptor, primero debe crear un objeto de interruptor a partir de una clase BooleanSwitch, una clase TraceSwitch, o una clase de interruptor definida por el desarrollador. Para obtener más información sobre cómo crear conmutadores definidos por el desarrollador, vea la clase Switch en la referencia de .NET Framework. A continuación, se establece un valor de configuración que especifica cuándo se va a usar el objeto switch. A continuación, pruebe el valor del objeto modificador en varios métodos de seguimiento Trace (o Debug).

Niveles de seguimiento

Al usar TraceSwitch, hay consideraciones adicionales. Un objeto TraceSwitch tiene cuatro propiedades que devuelven valores booleanos que indican si el modificador está establecido en al menos un nivel determinado:

Los niveles permiten limitar la cantidad de información de seguimiento que recibe solo a esa información necesaria para resolver un problema. Especifique el nivel de detalle que desee en la salida de rastreo estableciendo y configurando interruptores de rastreo en el nivel de rastreo apropiado. Puede recibir mensajes de error, mensajes de advertencia, mensajes informativos, mensajes detallados de seguimiento o ningún mensaje.

Es totalmente necesario decidir qué tipo de mensaje asociar con cada nivel. Normalmente, el contenido de los mensajes de seguimiento varía según lo que usted asocie a cada nivel, pero usted determina las diferencias entre los niveles. Es posible que quiera proporcionar descripciones detalladas de un problema en el nivel 3 (Información), por ejemplo, pero proporcionar solo un número de referencia de error en el nivel 1 (Error). Es completamente tu decisión decidir qué esquema funciona mejor en tu aplicación.

Estas propiedades corresponden a los valores de 1 a 4 de la enumeración TraceLevel . En la tabla siguiente se enumeran 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)
Apagado 0 Ninguno
Error 1 Solo mensajes de error
Advertencia 2 Mensajes de advertencia y mensajes de error
Información 3 Mensajes informativos, mensajes de advertencia y mensajes de error
Verboso 4 Mensajes verbosos, mensajes informativos, mensajes de advertencia y mensajes de error

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

Estas propiedades son de solo lectura. El objeto TraceSwitch los establece automáticamente cuando se establece la propiedad TraceLevel . Por ejemplo:

Dim myTraceSwitch As New TraceSwitch("SwitchOne", "The first switch")
myTraceSwitch.Level = TraceLevel.Info
' This message box displays true, because 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, because 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());

Modificadores definidos por el desarrollador

Además de proporcionar BooleanSwitch y TraceSwitch, puede definir sus propios interruptores heredando de la clase Switch y sobrescribiendo los métodos de la clase base con métodos personalizados. Para obtener más información sobre cómo crear conmutadores definidos por el desarrollador, vea la clase Switch en la referencia de .NET Framework.

Consulte también