Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Annotazioni
Questo articolo è specifico di .NET Framework. Non si applica alle implementazioni più recenti di .NET, incluse .NET 6 e versioni successive.
Gli interruttori di traccia consentono di abilitare, disabilitare e filtrare l'output di tracciamento. Sono oggetti presenti nel codice e possono essere configurati esternamente tramite il file .config. Nel .NET Framework sono disponibili tre tipi di interruttori di traccia: la classe BooleanSwitch, la classe TraceSwitch e la classe SourceSwitch. La BooleanSwitch classe funge da interruttore a levetta, abilitando o disabilitando un'ampia gamma di dichiarazioni di traccia. Le TraceSwitch classi e SourceSwitch consentono di abilitare un commutatore di traccia per un particolare livello di traccia in modo che vengano visualizzati i Trace messaggi o TraceSource specificati per tale livello e tutti i livelli sottostanti. Se si disabilita l'opzione, i messaggi di traccia non verranno visualizzati. Tutte queste classi derivano dalla classe astratta (MustInherit) Switch, così come qualsiasi commutatore sviluppato dall'utente.
I commutatori di traccia possono essere utili per filtrare le informazioni. Ad esempio, è possibile visualizzare ogni messaggio di traccia in un modulo di accesso ai dati, ma solo i messaggi di errore nel resto dell'applicazione. In tal caso, si userebbe un'opzione di traccia per il modulo di accesso ai dati e un'opzione per il resto dell'applicazione. Usando il file .config per configurare le opzioni alle impostazioni appropriate, è possibile controllare i tipi di messaggio di traccia ricevuti. Per ulteriori informazioni, vedere Come: Creare, inizializzare e configurare gli interruttori di traccia.
In genere, un'applicazione distribuita viene eseguita con le opzioni disabilitate, in modo che gli utenti non debbano osservare molti messaggi di traccia irrilevanti visualizzati su una schermata o compilare un file di log durante l'esecuzione dell'applicazione. Se si verifica un problema durante l'esecuzione dell'applicazione, è possibile arrestare l'applicazione, abilitare le opzioni e riavviare l'applicazione. Verranno quindi visualizzati i messaggi di traccia.
Per usare un'opzione, è prima necessario creare un oggetto switch da una classe BooleanSwitch , una classe TraceSwitch o una classe switch definita dallo sviluppatore. Per altre informazioni sulla creazione di commutatori definiti dallo sviluppatore, vedere la Switch classe nelle informazioni di riferimento su .NET Framework. Impostare quindi un valore di configurazione che specifica quando usare l'oggetto switch. Si procede quindi a testare la configurazione dell'oggetto switch in vari metodi di tracciamento Trace (o Debug).
Livelli di traccia
Quando si usa TraceSwitch, sono disponibili considerazioni aggiuntive. Un oggetto TraceSwitch ha quattro proprietà che restituiscono valori booleani che indicano se l'opzione è impostata su almeno un determinato livello:
I livelli consentono di limitare la quantità di informazioni di traccia ricevute solo a tali informazioni necessarie per risolvere un problema. Specificare il livello di dettaglio desiderato nell'output di traccia impostando e configurando le opzioni di traccia al livello di traccia appropriato. È possibile ricevere messaggi di errore, messaggi di avviso, messaggi informativi, messaggi di traccia dettagliati o nessun messaggio.
Spetta interamente a voi decidere quale tipo di messaggio associare a ogni livello. In genere, il contenuto dei messaggi di traccia dipende da ciò che si associa a ogni livello, ma si determinano le differenze tra i livelli. È possibile specificare descrizioni dettagliate di un problema al livello 3 (Informazioni), ad esempio, ma specificare solo un numero di riferimento di errore al livello 1 (errore). Spetta interamente all'utente decidere quale schema funziona meglio nell'applicazione.
Queste proprietà corrispondono ai valori da 1 a 4 dell'enumerazione TraceLevel . Nella tabella seguente sono elencati i livelli dell'enumerazione TraceLevel e i relativi valori.
| Valore enumerato | Valore intero | Tipo di messaggio visualizzato (o scritto in una destinazione di output specificata) |
|---|---|---|
| Disattivato | 0 | Nessuno |
| Errore | 1 | Solo messaggi di errore |
| Avvertimento | 2 | Messaggi di avviso e messaggi di errore |
| Informazioni | 3 | Messaggi informativi, messaggi di avviso e messaggi di errore |
| Verboso | 4 | Messaggi dettagliati, messaggi informativi, messaggi di avviso e messaggi di errore |
Le proprietà TraceSwitch indicano il livello di traccia massimo per lo switch. Ovvero, le informazioni di traccia vengono scritte per il livello specificato e per tutti i livelli inferiori. Ad esempio, se TraceInfo è true, Anche TraceError e TraceWarning sono true , ma TraceVerbose potrebbe essere false.
Queste proprietà sono di sola lettura. L'oggetto TraceSwitch li imposta automaticamente quando viene impostata la proprietà TraceLevel . Per esempio:
Dim myTraceSwitch As New TraceSwitch("SwitchOne", "The first switch")
myTraceSwitch.Level = TraceLevel.Info
' This message box displays true, because setting the level to
' TraceLevel.Info sets all lower levels to true as well.
MessageBox.Show(myTraceSwitch.TraceWarning.ToString())
' This messagebox displays false.
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString())
System.Diagnostics.TraceSwitch myTraceSwitch =
new System.Diagnostics.TraceSwitch("SwitchOne", "The first switch");
myTraceSwitch.Level = System.Diagnostics.TraceLevel.Info;
// This message box displays true, because setting the level to
// TraceLevel.Info sets all lower levels to true as well.
MessageBox.Show(myTraceSwitch.TraceWarning.ToString());
// This message box displays false.
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString());
Interruttori Developer-Defined
Oltre a fornire BooleanSwitch e TraceSwitch, è possibile definire opzioni personalizzate ereditando dalla classe Switch ed eseguendo l'override dei metodi della classe base con metodi personalizzati. Per altre informazioni sulla creazione di commutatori definiti dallo sviluppatore, vedere la Switch classe nelle informazioni di riferimento su .NET Framework.