Modificadores de seguimientoTrace Switches

Los modificadores de seguimiento permiten habilitar, deshabilitar y filtrar la salida del seguimiento.Trace switches enable you to enable, disable, and filter tracing output. Son objetos que existen en el código y que se pueden configurar externamente mediante el archivo config.They are objects that exist in your code and can be configured externally through the .config file. Hay tres tipos de modificadores de seguimiento en .NET Framework: la clase BooleanSwitch , la clase TraceSwitch y la clase SourceSwitch .There are three types of trace switches provided in the .NET Framework: the BooleanSwitch class, the TraceSwitch class, and the SourceSwitch class. La clase BooleanSwitch actúa como modificador para alternar que habilita o deshabilita una serie de instrucciones de seguimiento.The BooleanSwitch class acts as a toggle switch, either enabling or disabling a variety of trace statements. Las clases TraceSwitch y SourceSwitch permiten habilitar un modificador de seguimiento para un nivel de seguimiento determinado para que aparezcan los mensajes de Trace o TraceSource especificados para ese nivel y todos sus niveles inferiores.The TraceSwitch and SourceSwitch classes allow you to enable a trace switch for a particular tracing level so that the Trace or TraceSource messages specified for that level and all levels below it appear. Si deshabilita el modificador, los mensajes de seguimiento no aparecerán.If you disable the switch, the trace messages will not appear. Todas estas clases derivan de la clase abstracta (MustInherit) Switch, igual que deberían todos los modificadores desarrollados por el usuario.All these classes derive from the abstract (MustInherit) class Switch, as should any user-developed switches.

Los modificadores de seguimiento pueden ser útiles para filtrar información.Trace switches can be useful for filtering information. Por ejemplo, quizás quiera ver todos los mensajes de seguimiento de un módulo de acceso a datos, pero solo los mensajes de error del resto de la aplicación.For example, you might want to see every tracing message in a data access module, but only error messages in the rest of the application. 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.In that case, you would use one trace switch for the data access module and one switch for the rest of the application. Se puede usar el archivo .config para configurar las opciones apropiadas de los modificadores con el fin de controlar qué tipos de mensajes de seguimiento recibe.By using the .config file to configure the switches to the appropriate settings, you could control what types of trace message you received. Para obtener más información, consulte Cómo Crear, inicializar y configurar modificadoresde seguimiento.For more information, see How to: Create, Initialize and Configure Trace Switches.

Normalmente, una aplicación implementada se ejecuta con sus modificadores deshabilitados para que los usuarios no tengan que ver numerosos mensajes de seguimiento irrelevantes en la pantalla o que el archivo de registro se llene durante la ejecución de la aplicación.Typically, a deployed application is executed with its switches disabled, so that users need not observe a lot of irrelevant trace messages appearing on a screen or filling up a log file as the application runs. 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.If a problem arises during application execution, you can stop the application, enable the switches, and restart the application. Después, se mostrarán los mensajes de seguimiento.Then the tracing messages will be displayed.

Para usar un modificador primero debe crear un objeto modificador a partir de una clase BooleanSwitch , una clase TraceSwitch o una clase de modificador definida por el desarrollador.To use a switch you must first create a switch object from a BooleanSwitch class, a TraceSwitch class, or a developer-defined switch class. Para más información sobre cómo crear modificadores definidos por el desarrollador, consulte la clase Switch en la referencia de .NET Framework.For more information about creating developer-defined switches, see the Switch class in the .NET Framework reference. Después, establezca un valor de configuración que especifique cuándo se va a usar el objeto modificador.Then you set a configuration value that specifies when the switch object is to be used. A continuación, pruebe el valor del objeto modificador en varios métodos de seguimiento Trace (o Debug).You then test the setting of the switch object in various Trace (or Debug) tracing methods.

Niveles de seguimientoTrace Levels

Al usar TraceSwitchhay que tener en cuenta algunas consideraciones adicionales.When you use TraceSwitch, there are additional considerations. Un objeto TraceSwitch tiene cuatro propiedades que devuelven valores Boolean que indican si el modificador está establecido al menos en un nivel determinado:A TraceSwitch object has four properties that return Boolean values indicating whether the switch is set to at least a particular level:

Los niveles permiten limitar la cantidad de información de seguimiento para recibir solo la información necesaria para solucionar un problema.Levels allow you to limit the amount of tracing information you receive to only that information needed to solve a problem. Configure los modificadores de seguimiento en el nivel de seguimiento adecuado para especificar el nivel de detalle que quiere en la salida del seguimiento.You specify the level of detail you want in your tracing output by setting and configuring trace switches to the appropriate trace level. Puede recibir mensajes de error, mensajes de advertencia, mensajes informativos, mensajes de seguimiento detallados o ningún mensaje.You can receive error messages, warning messages, informational messages, verbose tracing messages, or no message at all.

Está en sus manos decidir qué tipo de mensaje asociará a cada nivel.It is entirely up to you to decide what kind of message to associate with each level. Normalmente, el contenido de los mensajes de seguimiento depende de lo que asocie a cada nivel, pero usted determina las diferencias entre los niveles.Typically, the content of tracing messages depends on what you associate with each level, but you determine the differences between levels. Desea proporcionar descripciones detalladas de un problema en el nivel 3 (Info), por ejemplo, pero solo un número de referencia de error en el nivel 1 (Error).You might want to provide detailed descriptions of a problem at level 3 (Info), for example, but provide only an error reference number at level 1 (Error). Es decisión suya qué esquema funciona mejor en su aplicación.It is entirely up to you to decide what scheme works best in your application.

Estas propiedades corresponden a los valores 1 a 4 de la enumeración TraceLevel .These properties correspond to the values 1 through 4 of the TraceLevel enumeration. En la tabla siguiente se enumeran los niveles de la enumeración TraceLevel y sus valores.The following table lists the levels of the TraceLevel enumeration and their values.

Valor enumeradoEnumerated value Valor enteroInteger value Tipo de mensaje que se muestra (o se escribe en un destino de salida especificado)Type of message displayed (or written to a specified output target)
DesactivadoOff 00 NoneNone
ErrorError 11 Solo mensajes de errorOnly error messages
AdvertenciaWarning 22 Mensajes de advertencia y mensajes de errorWarning messages and error messages
InfoInfo 33 Mensajes informativos, mensajes de advertencia y mensajes de errorInformational messages, warning messages, and error messages
DetalladoVerbose 44 Mensajes detallados, mensajes informativos, mensajes de advertencia y mensajes de errorVerbose messages, informational messages, warning messages, and error messages

Las propiedades de TraceSwitch indican el nivel de seguimiento máximo para el modificador.The TraceSwitch properties indicate the maximum trace level for the switch. Es decir, la información de seguimiento se escribe para el nivel especificado y para todos los niveles inferiores.That is, tracing information is written for the level specified as well as for all lower levels. Por ejemplo, si TraceInfo es true, TraceError y TraceWarning también son true , pero TraceVerbose podría ser false.For example, if TraceInfo is true, then TraceError and TraceWarning are also true but TraceVerbose might well be false.

Estas propiedades son de solo lectura.These properties are read-only. El objeto TraceSwitch las establece automáticamente cuando se establece la propiedad TraceLevel .The TraceSwitch object automatically sets them when the TraceLevel property is set. Por ejemplo:For example:

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 desarrolladorDeveloper-Defined Switches

Además de proporcionar 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.In addition to providing BooleanSwitch and TraceSwitch, you can define your own switches by inheriting from the Switch class and overriding the base class methods with customized methods. Para más información sobre cómo crear modificadores definidos por el desarrollador, consulte la clase Switch en la referencia de .NET Framework.For more information about creating developer-defined switches, see the Switch class in the .NET Framework reference.

Vea tambiénSee also