Condividi tramite


TraceSwitch Classe

Definizione

Fornisce un commutatore a più livelli per controllare la traccia e il debug dell'output senza ricompilare il codice.

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

Esempio

Nell'esempio di codice seguente viene creato un nuovo TraceSwitch oggetto e viene utilizzata l'opzione per determinare se stampare i messaggi di errore. L'opzione viene creata a livello di classe. MyMethod scrive il primo messaggio di errore se la Level proprietà è impostata su TraceLevel.Error o superiore. Tuttavia, MyMethod non scrive il secondo messaggio di errore se è Level minore di TraceLevel.Verbose.

//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 usare un'opzione di traccia per filtrare i messaggi in base alla loro importanza. La TraceSwitch classe fornisce le TraceErrorproprietà , TraceInfoTraceWarning, e TraceVerbose per testare il livello dell'opzione. La Level proprietà ottiene o imposta l'oggetto dell'opzione TraceLevel.

È possibile creare un oggetto TraceSwitch nel codice e impostare il livello direttamente per instrumentare una sezione specifica del codice.

Nelle app .NET Framework è anche possibile impostare il livello di un TraceSwitch tramite il file di configurazione dell'applicazione e quindi usare il livello configurato TraceSwitch nell'applicazione. Nel file di configurazione dell'applicazione è possibile aggiungere o rimuovere un'opzione, impostare il valore di un'opzione o cancellare tutte le opzioni impostate in precedenza dall'applicazione. Il file di configurazione deve essere formattato come nell'esempio seguente:

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

Questa sezione di configurazione definisce un TraceSwitch oggetto con l'oggetto DisplayName impostato su mySwitche il Level valore impostato su 1, che corrisponde al valore TraceLevel.Errordi enumerazione .

Annotazioni

È anche possibile usare il testo per specificare il valore di un'opzione. Ad esempio, true per un BooleanSwitchoggetto o il testo che rappresenta un valore di enumerazione, ad esempio Error per un oggetto TraceSwitch. La riga <add name="mySwitch" value="Error" /> equivale a <add name="mySwitch" value="1" />.

Nell'applicazione è possibile usare il livello di commutatore configurato creando un TraceSwitch oggetto con lo stesso nome, come illustrato nell'esempio seguente:

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

Nelle app .NET Core e .NET 5+ il Level valore predefinito della nuova opzione è TraceLevel.Off.

Nelle app .NET Framework la proprietà switch Level viene impostata per impostazione predefinita sul valore specificato nel file di configurazione. Se il TraceSwitch costruttore non riesce a trovare le impostazioni iniziali del commutatore nel file di configurazione, Level per impostazione predefinita la nuova opzione è TraceLevel.Off.

È necessario abilitare la traccia o il debug per usare un'opzione. La sintassi seguente è specifica del compilatore. Se si usano compilatori diversi da C# o Visual Basic, vedere la documentazione per il compilatore.

  • Per abilitare il debug in C#, aggiungere il /d:DEBUG flag alla riga di comando del compilatore quando si compila il codice o aggiungerlo #define DEBUG all'inizio del file. In Visual Basic aggiungere il /d:DEBUG=True flag alla riga di comando del compilatore.

  • Per abilitare la traccia in C#, aggiungere il /d:TRACE flag alla riga di comando del compilatore quando si compila il codice o aggiungerlo #define TRACE all'inizio del file. In Visual Basic aggiungere il /d:TRACE=True flag alla riga di comando del compilatore.

Annotazioni

Queste opzioni del compilatore di debug e traccia non sono necessarie quando si usa la TraceSwitch classe in isolamento. Sono necessari solo insieme a Trace metodi o Debug compilati in modo condizionale.

Per altre informazioni sulla strumentazione dell'applicazione, vedere Debug e Trace. Per altre informazioni sulla configurazione e sull'uso delle opzioni di traccia, vedere Opzioni di traccia.

Annotazioni

Per migliorare le prestazioni, è possibile creare TraceSwitch membri static nella classe.

Costruttori

Nome Descrizione
TraceSwitch(String, String, String)

Inizializza una nuova istanza della TraceSwitch classe utilizzando il nome visualizzato, la descrizione e il valore predefinito specificati per l'opzione.

TraceSwitch(String, String)

Inizializza una nuova istanza della TraceSwitch classe utilizzando il nome visualizzato e la descrizione specificati.

Proprietà

Nome Descrizione
Attributes

Ottiene gli attributi del commutatore personalizzato definiti nel file di configurazione dell'applicazione.

(Ereditato da Switch)
DefaultValue

Ottiene il valore predefinito assegnato nel costruttore.

(Ereditato da Switch)
Description

Ottiene una descrizione dell'opzione.

(Ereditato da Switch)
DisplayName

Ottiene un nome utilizzato per identificare l'opzione.

(Ereditato da Switch)
Level

Ottiene o imposta il livello di traccia che determina i messaggi consentiti dall'opzione.

SwitchSetting

Ottiene o imposta l'impostazione corrente per questa opzione.

(Ereditato da Switch)
TraceError

Ottiene un valore che indica se l'opzione consente la gestione degli errori dei messaggi.

TraceInfo

Ottiene un valore che indica se l'opzione consente messaggi informativi.

TraceVerbose

Ottiene un valore che indica se l'opzione consente tutti i messaggi.

TraceWarning

Ottiene un valore che indica se l'opzione consente messaggi di avviso.

Value

Ottiene o imposta il valore dell'opzione.

(Ereditato da Switch)

Metodi

Nome Descrizione
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetSupportedAttributes()

Ottiene gli attributi personalizzati supportati dall'opzione.

(Ereditato da Switch)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
OnSwitchSettingChanged()

Aggiorna e corregge il livello per questa opzione.

OnValueChanged()

Imposta la SwitchSetting proprietà sull'intero equivalente della Value proprietà .

Refresh()

Aggiorna i dati di configurazione della traccia.

(Ereditato da Switch)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche