TraceSwitch Clase

Definición

Proporciona un modificador multinivel para controlar la generación de traza y depuración sin recompilar su código.

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 crea un nuevo TraceSwitch y se usa el modificador para determinar si se deben imprimir mensajes de error. El modificador se crea en el nivel de clase. MyMethod escribe el primer mensaje de error si la Level propiedad está establecida TraceLevel.Error en o superior. Sin embargo, MyMethod no escribe el segundo mensaje de error si Level es menor que 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 en función de su importancia. La TraceSwitch clase proporciona las TraceErrorpropiedades , TraceWarning, TraceInfoy TraceVerbose para probar el nivel del modificador. La Level propiedad obtiene o establece el modificador TraceLevel.

Puede crear un TraceSwitch en el código y establecer el nivel directamente para instrumentar una sección específica del código.

Solo en .NET Framework aplicaciones, también puede establecer el nivel de a TraceSwitch través del archivo de configuración de la aplicación y, a continuación, usar el nivel configurado TraceSwitch en la aplicación. En el archivo de configuración de la aplicación, puede agregar o quitar un modificador, establecer el valor de un modificador o borrar todos los modificadores establecidos anteriormente por la aplicación. El archivo de configuración debe tener formato similar al ejemplo siguiente:

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

Esta sección de configuración define un TraceSwitch con el DisplayName establecido mySwitchen y el Level establecido en 1, que corresponde al valor TraceLevel.Errorde enumeración .

Nota

También puede usar texto para especificar el valor de un modificador. Por ejemplo, true para un BooleanSwitchobjeto o el texto que representa un valor de enumeración, como Error para .TraceSwitch La línea <add name="mySwitch" value="Error" /> es equivalente a <add name="mySwitch" value="1" />.

En la aplicación, puede usar el nivel de conmutador configurado mediante la creación de un TraceSwitch con el mismo nombre, como se muestra en el ejemplo siguiente:

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

En las aplicaciones de .NET Core y .NET 5+, el Level valor predeterminado del nuevo modificador es TraceLevel.Off.

En .NET Framework aplicaciones, el valor predeterminado de la propiedad switch Level es el valor especificado en el archivo de configuración. Si el TraceSwitch constructor no encuentra la configuración inicial del modificador en el archivo de configuración, Level el nuevo modificador tiene TraceLevel.Offcomo valor predeterminado .

Debe habilitar el seguimiento o la depuración para usar un modificador. La siguiente sintaxis es específica del compilador. Si usa compiladores distintos de C# o Visual Basic, consulte la documentación del compilador.

  • Para habilitar la depuración en C#, agregue la /d:DEBUG marca a la línea de comandos del compilador al compilar el código o agregue #define DEBUG a la parte superior del archivo. En Visual Basic, agregue la /d:DEBUG=True marca a la línea de comandos del compilador.

  • Para habilitar el seguimiento en C#, agregue la /d:TRACE marca a la línea de comandos del compilador al compilar el código o agregue #define TRACE a la parte superior del archivo. En Visual Basic, agregue la /d:TRACE=True marca a la línea de comandos del compilador.

Nota

Estos modificadores del compilador de depuración y seguimiento no son necesarios cuando se usa la TraceSwitch clase de forma aislada. Solo son necesarios junto con Trace métodos o Debug que se compilan condicionalmente.

Para más información sobre cómo instrumentar la aplicación, consulte Debug y Trace. Para obtener más información sobre cómo configurar y usar modificadores de seguimiento, vea Modificadores de seguimiento.

Nota

Para mejorar el rendimiento, puede crear TraceSwitch miembros static en la clase.

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.

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.

Propiedades

Attributes

Obtiene los atributos de modificador personalizados definidos en el archivo de configuración de la aplicación.

(Heredado de Switch)
Description

Obtiene una descripción del modificador.

(Heredado de Switch)
DisplayName

Obtiene el nombre utilizado para identificar el modificador.

(Heredado de Switch)
Level

Obtiene o establece el nivel de seguimiento que determina los mensajes que permite el modificador.

SwitchSetting

Obtiene o establece la configuración actual de este modificador.

(Heredado de Switch)
TraceError

Obtiene un valor que indica si el modificador permite mensajes de control de errores.

TraceInfo

Obtiene un valor que indica si el modificador permite mensajes informativos.

TraceVerbose

Obtiene un valor que indica si el modificador permite todos los mensajes.

TraceWarning

Obtiene un valor que indica si el modificador permite mensajes de advertencia.

Value

Obtiene o establece el valor del modificador.

(Heredado de Switch)

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetSupportedAttributes()

Obtiene los atributos personalizados que admite el modificador.

(Heredado de Switch)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OnSwitchSettingChanged()

Actualiza y corrige el nivel de este modificador.

OnValueChanged()

Establece la propiedad SwitchSetting en el entero equivalente de la propiedad Value.

OnValueChanged()

Se invoca cuando cambia la propiedad Value.

(Heredado de Switch)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también