TraceSwitch TraceSwitch TraceSwitch TraceSwitch Class

Definizione

Viene fornita un'opzione multilivello per il controllo dell'output di tracciatura e debug senza ricompilare il codice.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
Ereditarietà
TraceSwitchTraceSwitchTraceSwitchTraceSwitch

Esempi

Nell'esempio di codice seguente viene creato TraceSwitch un nuovo oggetto e viene utilizzata l'opzione per determinare se stampare i messaggi di errore.The following code example creates a new TraceSwitch and uses the switch to determine whether to print error messages. L'opzione viene creata a livello di classe.The switch is created at the class level. MyMethodscrive il primo messaggio di errore se Level la proprietà è impostata TraceLevel.Error su o una versione successiva.MyMethod writes the first error message if the Level property is set to TraceLevel.Error or higher. Tuttavia, MyMethod non scrive il secondo messaggio di errore Level se è minore di TraceLevel.Verbose.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

Commenti

È possibile utilizzare un'opzione di traccia per filtrare i messaggi in base alla relativa importanza.You can use a trace switch to filter out messages based on their importance. La TraceSwitch classe fornisce le TraceErrorproprietà TraceWarning, TraceInfo, eTraceVerbose per verificare il livello dell'opzione.The TraceSwitch class provides the TraceError, TraceWarning, TraceInfo, and TraceVerbose properties to test the level of the switch. La Level proprietà Ottiene o imposta l'oggetto dell' TraceLevelopzione.The Level property gets or sets the switch's TraceLevel.

È possibile impostare il livello di un TraceSwitch tramite il file di configurazione dell'applicazione e quindi usare TraceSwitch il livello configurato nell'applicazione.You can set the level of a TraceSwitch through the application configuration file and then use the configured TraceSwitch level in your application. In alternativa, è possibile creare un TraceSwitch oggetto nel codice e impostare direttamente il livello per instrumentare una sezione di codice specifica.Alternately, you can create a TraceSwitch in your code and set the level directly to instrument a specific section of code.

Per configurare un TraceSwitch, modificare il file di configurazione per l'applicazione.To configure a TraceSwitch, edit the configuration file for your application. In questo file è possibile aggiungere o rimuovere un'opzione, impostare il valore di un commutatore o deselezionare tutte le opzioni precedentemente impostate dall'applicazione.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. Il file di configurazione deve essere formattato come nell'esempio seguente:The configuration file should be formatted like the following example:

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

Questa sezione di configurazione definisce TraceSwitch un oggetto DisplayName con Level impostato mySwitchsu e impostato su 1, che corrisponde al valore TraceLevel.Errordi enumerazione.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

In .NET Framework versione 2.0 è possibile usare testo per specificare il valore di un'opzione,In the .NET Framework version 2.0, you can use text to specify the value for a switch. Ad esempio, true per un BooleanSwitch oggetto o il testo che rappresenta un valore di Error enumerazione, ad TraceSwitchesempio per un oggetto.For example, true for a BooleanSwitch or the text representing an enumeration value, such as Error for a TraceSwitch. La riga <add name="mySwitch" value="Error" /> equivale a <add name="mySwitch" value="1" />.The line <add name="mySwitch" value="Error" /> is equivalent to <add name="mySwitch" value="1" />.

Nell'applicazione è possibile usare il livello di commutazione configurato creando un TraceSwitch con lo stesso nome, come illustrato nell'esempio seguente: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

Per impostazione predefinita, la Level proprietà Switch viene impostata usando il valore specificato nel file di configurazione.By default, the switch Level property is set using the value specified in the configuration file. Se il TraceSwitch costruttore non riesce a trovare le impostazioni del cambio iniziale nel file Level di configurazione, il valore predefinito della TraceLevel.Offnuova opzione è.If the TraceSwitch constructor cannot find initial switch settings in the configuration file, the Level of the new switch defaults to TraceLevel.Off.

È necessario abilitare la traccia o il debug per usare un'opzione.You must enable tracing or debugging to use a switch. La sintassi seguente è specifica del compilatore.The following syntax is compiler specific. Se si usano compilatori diversi C# da o Visual Basic, fare riferimento alla documentazione del compilatore.If you use compilers other than C# or Visual Basic, refer to the documentation for your compiler.

  • Per abilitare il debug C#in, aggiungere /d:DEBUG il flag alla riga di comando del compilatore quando si compila il codice oppure #define DEBUG aggiungerlo all'inizio del file.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. In Visual Basic aggiungere il /d:DEBUG=True flag alla riga di comando del compilatore.In Visual Basic, add the /d:DEBUG=True flag to the compiler command line.

  • Per abilitare l'analisi C#in, aggiungere /d:TRACE il flag alla riga di comando del compilatore quando si compila il codice oppure #define TRACE aggiungerlo all'inizio del file.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. In Visual Basic aggiungere il /d:TRACE=True flag alla riga di comando del compilatore.In Visual Basic, add the /d:TRACE=True flag to the compiler command line.

Nota

Queste opzioni del compilatore di debug e di traccia non sono necessarie TraceSwitch quando si usa la classe in isolamento.These debug and trace compiler switches are not required when using the TraceSwitch class in isolation. Sono necessarie solo in combinazione con Trace i metodi o Debug compilati in modo condizionale.They are only required in conjunction with Trace or Debug methods that are conditionally compiled.

Per ulteriori informazioni sulla strumentazione dell'applicazione, vedere Debug e. TraceFor more information on instrumenting your application, see Debug and Trace. Per ulteriori informazioni sulla configurazione e sull'utilizzo delle opzioni di traccia, vedere Opzioni di traccia.For more information about configuring and using trace switches, see Trace Switches.

Nota

Per migliorare le prestazioni, è possibile TraceSwitch fare static in modo che i membri della classe.To improve performance, you can make TraceSwitch members static in your class.

Costruttori

TraceSwitch(String, String) TraceSwitch(String, String) TraceSwitch(String, String) TraceSwitch(String, String)

Inizializza una nuova istanza della classe TraceSwitch utilizzando il nome e la descrizione specificati.Initializes a new instance of the TraceSwitch class, using the specified display name and description.

TraceSwitch(String, String, String) TraceSwitch(String, String, String) TraceSwitch(String, String, String) TraceSwitch(String, String, String)

Inizializza una nuova istanza della classe TraceSwitch utilizzando il nome, la descrizione e il valore predefinito specificati per l'opzione.Initializes a new instance of the TraceSwitch class, using the specified display name, description, and default value for the switch.

Proprietà

Attributes Attributes Attributes Attributes

Ottiene gli attributi di opzione personalizzati definiti nel file di configurazione dell'applicazione.Gets the custom switch attributes defined in the application configuration file.

(Inherited from Switch)
Description Description Description Description

Ottiene una descrizione dell'opzione.Gets a description of the switch.

(Inherited from Switch)
DisplayName DisplayName DisplayName DisplayName

Ottiene un nome utilizzato per identificare l'opzione.Gets a name used to identify the switch.

(Inherited from Switch)
Level Level Level Level

Ottiene o imposta il livello di traccia che determina i messaggi consentiti dall'opzione.Gets or sets the trace level that determines the messages the switch allows.

SwitchSetting SwitchSetting SwitchSetting SwitchSetting

Ottiene o imposta il nome corrente per questa opzione.Gets or sets the current setting for this switch.

(Inherited from Switch)
TraceError TraceError TraceError TraceError

Ottiene un valore che indica se l'opzione consente i messaggi di gestione degli errori.Gets a value indicating whether the switch allows error-handling messages.

TraceInfo TraceInfo TraceInfo TraceInfo

Ottiene un valore che indica se l'opzione consente i messaggi informativi.Gets a value indicating whether the switch allows informational messages.

TraceVerbose TraceVerbose TraceVerbose TraceVerbose

Ottiene un valore che indica se l'opzione consente tutti i messaggi.Gets a value indicating whether the switch allows all messages.

TraceWarning TraceWarning TraceWarning TraceWarning

Ottiene un valore che indica se l'opzione consente i messaggi di avviso.Gets a value indicating whether the switch allows warning messages.

Value Value Value Value

Ottiene o imposta il valore dell'opzione.Gets or sets the value of the switch.

(Inherited from Switch)

Metodi

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetSupportedAttributes() GetSupportedAttributes() GetSupportedAttributes() GetSupportedAttributes()

Ottiene gli attributi personalizzati supportati dall'opzione.Gets the custom attributes supported by the switch.

(Inherited from Switch)
GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
OnSwitchSettingChanged() OnSwitchSettingChanged() OnSwitchSettingChanged() OnSwitchSettingChanged()

Aggiorna e corregge il livello dell'opzione.Updates and corrects the level for this switch.

OnValueChanged() OnValueChanged() OnValueChanged() OnValueChanged()

Imposta le proprietà SwitchSetting sull'intero equivalente della proprietà Value.Sets the SwitchSetting property to the integer equivalent of the Value property.

ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Si applica a

Vedi anche