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
L'esempio di codice seguente crea un nuovo TraceSwitch oggetto e usa 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 commutatore di traccia per filtrare i messaggi in base alla loro importanza. La TraceSwitch classe fornisce le TraceErrorproprietà , , TraceWarningTraceInfoe TraceVerbose per testare il livello dell'opzione. La Level proprietà ottiene o imposta l'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 solo è 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 commutatore o cancellare tutte le opzioni impostate in precedenza dall'applicazione. Il file di configurazione deve essere formattato come l'esempio seguente:
<configuration>
<system.diagnostics>
<switches>
<add name="mySwitch" value="1" />
</switches>
</system.diagnostics>
</configuration>
Questa sezione di configurazione definisce un TraceSwitch oggetto con il DisplayName set su mySwitch
e il Level set su 1, che corrisponde al valore TraceLevel.Errordi enumerazione .
Nota
È anche possibile usare il testo per specificare il valore per un commutatore. Ad esempio, true
per un BooleanSwitchoggetto o il testo che rappresenta un valore di enumerazione, ad esempio Error
per un TraceSwitchoggetto . 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 oggetto TraceSwitch 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 nuovo commutatore viene impostato su 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 predefinito su TraceLevel.Off.
È necessario abilitare la traccia o il debug per usare un commutatore. La sintassi seguente è specifica del compilatore. Se si usano compilatori diversi da C# o Visual Basic, vedere la documentazione del compilatore.
Per abilitare il debug in C#, aggiungere il flag alla riga di comando del compilatore quando si compila il
/d:DEBUG
codice o aggiungere#define DEBUG
alla parte superiore 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 flag alla riga di comando del compilatore quando si compila il
/d:TRACE
codice o aggiungere#define TRACE
alla parte superiore 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 traccia non sono necessarie quando si usa la TraceSwitch classe in isolamento. Sono necessari solo in combinazione con Trace o Debug metodi compilati in modo condizionale.
Per altre informazioni sulla strumentazione dell'applicazione, vedere Debug e Trace. Per altre informazioni sulla configurazione e sull'uso di commutatori di traccia, vedere Commutatori 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) |
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) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |