TraceSwitch Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Viene fornita un'opzione multilivello per il controllo dell'output di tracciatura e debug 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à
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.*/
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 usare un'opzione di traccia per filtrare i messaggi in base alla loro importanza. La TraceSwitch classe fornisce le TraceErrorproprietà , TraceWarning, TraceInfoe TraceVerbose per testare il livello dell'opzione. La Level proprietà ottiene o imposta l'oggetto dell'opzione TraceLevel.
È possibile creare un TraceSwitch oggetto nel codice e impostare il livello direttamente per instrumentare una sezione specifica del codice.
Nelle app .NET Framework è anche possibile impostare il livello di tramite TraceSwitch 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 precedentemente impostate 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 mySwitch
e il Level valore impostato su 1, che corrisponde al valore TraceLevel.Errordi enumerazione .
Nota
È 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 opzione configurato creando un TraceSwitch oggetto con lo stesso nome, come illustrato nell'esempio seguente:
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
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 del nuovo commutatore il valore predefinito è 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 relativa al 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.
Nota
Queste opzioni del compilatore di debug e di traccia non sono necessarie quando si usa la TraceSwitch classe in isolamento. Sono necessari solo in combinazione con Trace i 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 di opzioni di traccia, vedere Opzioni di traccia.
Nota
Per migliorare le prestazioni, è possibile creare TraceSwitch membri static
nella classe.
Costruttori
TraceSwitch(String, String) |
Inizializza una nuova istanza della classe TraceSwitch utilizzando il nome e la descrizione specificati. |
TraceSwitch(String, String, String) |
Inizializza una nuova istanza della classe TraceSwitch utilizzando il nome, la descrizione e il valore predefinito specificati per l'opzione. |
Proprietà
Attributes |
Ottiene gli attributi di opzione personalizzati 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 il nome corrente per questa opzione. (Ereditato da Switch) |
TraceError |
Ottiene un valore che indica se l'opzione consente i messaggi di gestione degli errori. |
TraceInfo |
Ottiene un valore che indica se l'opzione consente i 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 i messaggi di avviso. |
Value |
Ottiene o imposta il valore dell'opzione. (Ereditato da Switch) |
Metodi
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 l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OnSwitchSettingChanged() |
Aggiorna e corregge il livello dell'opzione. |
OnValueChanged() |
Imposta le proprietà SwitchSetting sull'intero equivalente della proprietà Value. |
OnValueChanged() |
Viene richiamato quando si modifica la proprietà Value. (Ereditato da Switch) |
Refresh() |
Aggiorna i dati configurazione di traccia. (Ereditato da Switch) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |