TraceSwitch Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
Ejemplos
En el ejemplo de código siguiente se crea un nuevo TraceSwitch y se usa el modificador para determinar si se imprimen los 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 es Level 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 elemento en el código y establecer el nivel directamente para instrumentar una sección específica del código.
Solo en las aplicaciones de .NET Framework, 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 previamente por la aplicación. El archivo de configuración debe tener un formato similar al del ejemplo siguiente:
<configuration>
<system.diagnostics>
<switches>
<add name="mySwitch" value="1" />
</switches>
</system.diagnostics>
</configuration>
Esta sección de configuración define un TraceSwitch objeto con el DisplayName establecido mySwitch
en 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 , BooleanSwitcho 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 las aplicaciones de .NET Framework, 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 valor predeterminado del nuevo modificador es TraceLevel.Off.
Debe habilitar el seguimiento o la depuración para usar un modificador. La sintaxis siguiente 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 los métodos o Debug que se compilan condicionalmente.
Para obtener 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) |
DefaultValue |
Obtiene el valor predeterminado asignado en el constructor. (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) |
Refresh() |
Actualiza los datos de configuración de seguimiento. (Heredado de Switch) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |