TraceSwitch Clase

Definición

Proporciona un modificador multinivel para controlar la generación de traza y depuración sin recompilar su código.Provides a multilevel switch to control tracing and debug output without recompiling your code.

public ref class TraceSwitch : System::Diagnostics::Switch
public class TraceSwitch : System.Diagnostics.Switch
type TraceSwitch = class
    inherit Switch
Public Class TraceSwitch
Inherits Switch
Herencia
TraceSwitch

Ejemplos

En el ejemplo de código siguiente se TraceSwitch crea un nuevo y se utiliza el modificador para determinar si se van a imprimir los mensajes de error.The following code example creates a new TraceSwitch and uses the switch to determine whether to print error messages. El modificador se crea en el nivel de clase.The switch is created at the class level. MyMethodescribe el primer mensaje de error si Level la propiedad está establecida TraceLevel.Error en o superior.MyMethod writes the first error message if the Level property is set to TraceLevel.Error or higher. Sin embargo MyMethod , no escribe el segundo mensaje de error si Level el valor de TraceLevel.Verbosees menor que.However, MyMethod does not write the second error message if the Level is less than TraceLevel.Verbose.

   // Class-level declaration.
   /* Create a TraceSwitch to use in the entire application.*/
private:
   static TraceSwitch^ mySwitch = gcnew TraceSwitch( "General", "Entire Application" );

public:
   static void MyMethod()
   {
      // Write the message if the TraceSwitch level is set to Error or higher.
      if ( mySwitch->TraceError )
         Console::WriteLine( "My error message." );
      
      // Write the message if the TraceSwitch level is set to Verbose.
      if ( mySwitch->TraceVerbose )
         Console::WriteLine( "My second error message." );
   }

   static void main()
   {
      // Run the method that prints error messages based on the switch level.
      MyMethod();
   }
//Class-level declaration.
 /* Create a TraceSwitch to use in the entire application.*/
 static TraceSwitch mySwitch = new TraceSwitch("General", "Entire Application");
 
 static public void MyMethod() {
    // Write the message if the TraceSwitch level is set to Error or higher.
    if(mySwitch.TraceError)
       Console.WriteLine("My error message.");
 
    // Write the message if the TraceSwitch level is set to Verbose.
    if(mySwitch.TraceVerbose)
       Console.WriteLine("My second error message.");
 }
 
 public static void Main(string[] args) {
    // Run the method that prints error messages based on the switch level.
    MyMethod();
 }
 
' Class-level declaration.
' Create a TraceSwitch to use in the entire application. 
Private Shared mySwitch As New TraceSwitch("General", "Entire Application")    

Public Shared Sub MyMethod()
    ' Write the message if the TraceSwitch level is set to Error or higher.
    If mySwitch.TraceError Then
        Console.WriteLine("My error message.")
    End If 
    ' Write the message if the TraceSwitch level is set to Verbose.
    If mySwitch.TraceVerbose Then
        Console.WriteLine("My second error message.")
    End If
End Sub

Public Shared Sub Main()
    ' Run the method that prints error messages based on the switch level.
    MyMethod()
End Sub

Comentarios

Puede usar un modificador de seguimiento para filtrar los mensajes según su importancia.You can use a trace switch to filter out messages based on their importance. La TraceSwitch clase proporciona las TraceErrorpropiedades TraceWarning, TraceInfo, yTraceVerbose para probar el nivel del modificador.The TraceSwitch class provides the TraceError, TraceWarning, TraceInfo, and TraceVerbose properties to test the level of the switch. La Level propiedad obtiene o establece el del TraceLevelmodificador.The Level property gets or sets the switch's TraceLevel.

Puede establecer el nivel de TraceSwitch a través del archivo de configuración de la aplicación y, a continuación, utilizar el nivel configurado TraceSwitch en la aplicación.You can set the level of a TraceSwitch through the application configuration file and then use the configured TraceSwitch level in your application. Como alternativa, puede crear un TraceSwitch en el código y establecer el nivel directamente para instrumentar una sección específica de código.Alternately, you can create a TraceSwitch in your code and set the level directly to instrument a specific section of code.

Para configurar TraceSwitch, edite el archivo de configuración de la aplicación.To configure a TraceSwitch, edit the configuration file for your application. En este archivo, puede Agregar o quitar un modificador, establecer el valor de un modificador o borrar todos los modificadores previamente establecidos por la aplicación.In this file, you can add or remove a switch, set a switch's value, or clear all the switches previously set by the application. El archivo de configuración debe tener el formato del siguiente ejemplo:The configuration file should be formatted like the following example:

<configuration>  
  <system.diagnostics>  
    <switches>  
      <add name="mySwitch" value="1" />  
    </switches>  
  </system.diagnostics>  
</configuration>  

Esta sección de configuración define TraceSwitch un con DisplayName el establecido mySwitchen y el Level establecido en 1, que corresponde al valor TraceLevel.Errorde enumeración.This configuration section defines a TraceSwitch with the DisplayName set to mySwitch, and the Level set to 1, which corresponds to the enumeration value TraceLevel.Error.

Nota

En la versión 2.0 de .NET Framework, puede utilizar texto para especificar el valor de un modificador.In the .NET Framework version 2.0, you can use text to specify the value for a switch. Por ejemplo, true BooleanSwitch para o el texto que representa un valor Error de enumeración TraceSwitch, como para.For example, true for a BooleanSwitch or the text representing an enumeration value, such as Error for a TraceSwitch. La línea <add name="mySwitch" value="Error" /> es equivalente a <add name="mySwitch" value="1" />.The line <add name="mySwitch" value="Error" /> is equivalent to <add name="mySwitch" value="1" />.

En la aplicación, puede usar el nivel de conmutador configurado mediante la creación TraceSwitch de un con el mismo nombre, tal y como se muestra en el ejemplo siguiente:In your application, you can use the configured switch level by creating a TraceSwitch with the same name, as shown in the following example:

private:
    static TraceSwitch^ appSwitch = gcnew TraceSwitch("mySwitch",
        "Switch in config file");

public:
    static void Main(array<String^>^ args)
    {
        //...
        Console::WriteLine("Trace switch {0} configured as {1}",
        appSwitch->DisplayName, appSwitch->Level.ToString());
        if (appSwitch->TraceError)
        {
            //...
        }
    }
private static TraceSwitch appSwitch = new TraceSwitch("mySwitch",
    "Switch in config file");

public static void Main(string[] args)
{
    //...
    Console.WriteLine("Trace switch {0} configured as {1}",
    appSwitch.DisplayName, appSwitch.Level.ToString());
    if (appSwitch.TraceError)
    {
        //...
    }
}
Private Shared appSwitch As new TraceSwitch("mySwitch", _
    "Switch in config file")

Public Shared Sub Main(args As String())
    '...
    Console.WriteLine("Trace switch {0} configured as {1}",
    appSwitch.DisplayName, appSwitch.Level.ToString())
    If appSwitch.TraceError = True  Then
        '...
    End If
End Sub

De forma predeterminada, la Level propiedad switch se establece con el valor especificado en el archivo de configuración.By default, the switch Level property is set using the value specified in the configuration file. Si el TraceSwitch constructor no encuentra la configuración inicial del conmutador en el archivo de Level configuración, el del TraceLevel.Offnuevo modificador tiene como valor predeterminado.If the TraceSwitch constructor cannot find initial switch settings in the configuration file, the Level of the new switch defaults to TraceLevel.Off.

Debe habilitar el seguimiento o la depuración para utilizar un modificador.You must enable tracing or debugging to use a switch. La sintaxis siguiente es específica del compilador.The following syntax is compiler specific. Si utiliza compiladores distintos de C# o Visual Basic, consulte la documentación del compilador.If you use compilers other than C# or Visual Basic, refer to the documentation for your compiler.

  • Para habilitar la depuración en C#, /d:DEBUG agregue la marca a la línea de comandos del compilador al compilar el código o agregue #define DEBUG en la parte superior del archivo.To enable debugging in C#, add the /d:DEBUG flag to the compiler command line when you compile your code, or add #define DEBUG to the top of your file. En Visual Basic, agregue la /d:DEBUG=True marca a la línea de comandos del compilador.In Visual Basic, add the /d:DEBUG=True flag to the compiler command line.

  • Para habilitar el seguimiento C#en, agregue /d:TRACE la marca a la línea de comandos del compilador al compilar el código o agregue #define TRACE en la parte superior del archivo.To enable tracing in C#, add the /d:TRACE flag to the compiler command line when you compile your code, or add #define TRACE to the top of your file. En Visual Basic, agregue la /d:TRACE=True marca a la línea de comandos del compilador.In Visual Basic, add the /d:TRACE=True flag to the compiler command line.

Nota

Estos modificadores de compilador de depuración y TraceSwitch seguimiento no son necesarios cuando se usa la clase de aislamiento.These debug and trace compiler switches are not required when using the TraceSwitch class in isolation. Solo se requieren junto con Trace los métodos o Debug que se compilan condicionalmente.They are only required in conjunction with Trace or Debug methods that are conditionally compiled.

Para obtener más información sobre cómo instrumentar la aplicación Debug , Tracevea y.For more information on instrumenting your application, see Debug and Trace. Para obtener más información sobre la configuración y el uso de modificadores de seguimiento, vea modificadores de seguimiento.For more information about configuring and using trace switches, see Trace Switches.

Nota

Para mejorar el rendimiento, puede crear TraceSwitch miembros static en la clase.To improve performance, you can make TraceSwitch members static in your class.

Constructores

TraceSwitch(String, String)

Inicializa una nueva instancia de la clase TraceSwitch utilizando el nombre para mostrar y la descripción que se hayan especificado.Initializes a new instance of the TraceSwitch class, using the specified display name and description.

TraceSwitch(String, String, String)

Inicializa una nueva instancia de la clase TraceSwitch utilizando el nombre para mostrar, la descripción y el valor predeterminado del modificador que se hayan especificado.Initializes a new instance of the TraceSwitch class, using the specified display name, description, and default value for the switch.

Propiedades

Attributes

Obtiene los atributos de modificador personalizados definidos en el archivo de configuración de la aplicación.Gets the custom switch attributes defined in the application configuration file.

(Heredado de Switch)
Description

Obtiene una descripción del modificador.Gets a description of the switch.

(Heredado de Switch)
DisplayName

Obtiene el nombre utilizado para identificar el modificador.Gets a name used to identify the switch.

(Heredado de Switch)
Level

Obtiene o establece el nivel de seguimiento que determina los mensajes que permite el modificador.Gets or sets the trace level that determines the messages the switch allows.

SwitchSetting

Obtiene o establece la configuración actual de este modificador.Gets or sets the current setting for this switch.

(Heredado de Switch)
TraceError

Obtiene un valor que indica si el modificador permite mensajes de control de errores.Gets a value indicating whether the switch allows error-handling messages.

TraceInfo

Obtiene un valor que indica si el modificador permite mensajes informativos.Gets a value indicating whether the switch allows informational messages.

TraceVerbose

Obtiene un valor que indica si el modificador permite todos los mensajes.Gets a value indicating whether the switch allows all messages.

TraceWarning

Obtiene un valor que indica si el modificador permite mensajes de advertencia.Gets a value indicating whether the switch allows warning messages.

Value

Obtiene o establece el valor del modificador.Gets or sets the value of the switch.

(Heredado de Switch)

Métodos

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetSupportedAttributes()

Obtiene los atributos personalizados que admite el modificador.Gets the custom attributes supported by the switch.

(Heredado de Switch)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
OnSwitchSettingChanged()

Actualiza y corrige el nivel de este modificador.Updates and corrects the level for this switch.

OnValueChanged()

Establece la propiedad SwitchSetting en el entero equivalente de la propiedad Value.Sets the SwitchSetting property to the integer equivalent of the Value property.

ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Se aplica a

Consulte también: