Condividi tramite


Opzioni di traccia

Le opzioni di traccia consentono di attivare, disabilitare e filtrare l'output di tracciatura. Si tratta di oggetti presenti nel codice che possono essere configurati esternamente tramite il file CONFIG. Esistono tre tipi di opzioni di traccia in .NET Framework, ossia le classi BooleanSwitch, TraceSwitch e SourceSwitch. La classe BooleanSwitch funge da opzione di attivazione o disabilitazione per diverse istruzioni di traccia. Le classi TraceSwitch e SourceSwitch consentono di attivare un'opzione per un particolare livello di tracciatura, in modo che vengano visualizzati i messaggi di traccia Trace o TraceSource specificati per tale livello e per tutti i livelli inferiori. Se si disabilita l'opzione, i messaggi di traccia non verranno visualizzati. Tutte queste classi derivano dalla classe Switch (MustInherit) astratta, come avviene per ogni opzione sviluppata dall'utente.

Le opzioni di traccia possono risultare utili per filtrare informazioni. Può essere ad esempio necessario visualizzare ogni messaggio di tracciatura in un modulo di accesso ai dati, ma solo i messaggi di errore nel resto dell'applicazione. In tal caso, si utilizza un'opzione di traccia per il modulo di accesso ai dati e un'opzione per il resto dell'applicazione. Utilizzando il file CONFIG per configurare le opzioni sulle impostazioni appropriate, è possibile controllare il tipo di messaggi di traccia ricevuti. Per ulteriori informazioni, vedere Procedura: creare e inizializzare opzioni di traccia e Procedura: configurare opzioni di traccia.

In genere un'applicazione distribuita viene eseguita con le opzioni disabilitate, in modo che non vengano visualizzati messaggi di traccia superflui o non sia necessario compilare file di log durante l'esecuzione dell'applicazione. Se sorge un problema durante l'esecuzione dell'applicazione, è possibile arrestare l'applicazione, attivare le opzioni e riavviare l'applicazione. I messaggi di tracciatura verranno in questo modo visualizzati.

Per utilizzare un'opzione è prima necessario creare un oggetto opzione da una classe BooleanSwitch, da una classe TraceSwitch o da una classe di opzione definita dallo sviluppatore. Per ulteriori informazioni sulla creazione di opzioni definite dallo sviluppatore, vedere Classe Switch negli argomenti di riferimento su .NET Framework. Si imposta poi un valore di configurazione che specifica quando occorre utilizzare l'oggetto opzione. Si procede quindi alla verifica dell'impostazione dell'oggetto opzione in diversi metodi di tracciatura Trace o Debug.

Livelli di traccia

Se si utilizza TraceSwitch è necessario procedere a ulteriori considerazioni. Un oggetto TraceSwitch ha quattro proprietà che restituiscono valori Boolean che indicano se l'opzione è impostata su almeno un livello particolare:

I livelli consentono di limitare il quantitativo di informazioni di tracciatura che si riceve unicamente alle informazioni necessarie alla risoluzione di un problema. Si specifica il livello di dettaglio desiderato nell'output di tracciatura impostando e configurando le opzioni di traccia al livello di traccia appropriato. È possibile ricevere messaggi di errore, messaggi di avviso, messaggi informativi, messaggi di tracciatura dettagliati o nessun messaggio.

È possibile decidere quale tipo di messaggi associare a ciascun livello. In genere il contenuto dei messaggi di tracciatura dipende da ciò che viene associato a ciascun livello, ma è possibile stabilire le differenze tra i livelli. È possibile ad esempio fornire descrizioni dettagliate di un problema a livello 3 (Info), ma fornire solo un numero di riferimento per l'errore a livello 1 (Error). È possibile stabilire lo schema più adatto per ogni applicazione.

Queste proprietà corrispondono ai valori da 1 a 4 dell'enumerazione TraceLevel. Nella tabella che segue sono elencati i livelli dell'enumerazione TraceLevel e i relativi valori.

Valore enumerato

Valore integer

Tipo di messaggio visualizzato o scritto in una destinazione di output specificata

Off

0

Nessuno

Error

1

Solo messaggi di errore.

Avviso

2

Messaggi di avviso e messaggi di errore.

Info

3

Messaggi informativi, messaggi di avviso e messaggi di errore.

Verbose

4

Messaggi dettagliati, messaggi informativi, messaggi di avviso e messaggi di errore.

Le proprietà TraceSwitch indicano il livello di traccia massimo per l'opzione. Vale a dire che l'informazione di tracciatura viene scritta per il livello specificato e per tutti i livelli inferiori. Se, ad esempio, TraceInfo è true, anche TraceError e TraceWarning saranno true ma TraceVerbose potrebbe essere false.

Queste proprietà sono in sola lettura. L'oggetto TraceSwitch le imposta automaticamente quando viene impostata la proprietà TraceLevel. Di seguito è riportato un esempio:

Dim myTraceSwitch As New TraceSwitch("SwitchOne", "The first switch")
myTraceSwitch.Level = TraceLevel.Info
' This message box displays true, becuase 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, becuase 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());
System.Diagnostics.TraceSwitch myTraceSwitch =
   new System.Diagnostics.TraceSwitch("SwitchOne", "The first switch");
myTraceSwitch.set_Level(System.Diagnostics.TraceLevel.Info);
// This message box displays true, becuase setting the level to 
// TraceLevel.Info sets all lower levels to true as well.
MessageBox.Show(Convert.ToString(myTraceSwitch.get_TraceWarning()));
// This message box displays false.
MessageBox.Show(Convert.ToString(myTraceSwitch.get_TraceVerbose()));}

Opzioni definite dallo sviluppatore

Oltre a fornire BooleanSwitch e TraceSwitch, è possibile definire opzioni personalizzate ereditando dalla classe Switch ed eseguendo l'override dei metodi della classe base con i metodi personalizzati. Per ulteriori informazioni sulla creazione di opzioni definite dallo sviluppatore, vedere Classe Switch negli argomenti di riferimento su .NET Framework.

Vedere anche

Attività

Procedura: aggiungere istruzioni di traccia al codice dell'applicazione

Procedura: configurare opzioni di traccia

Concetti

Listener di traccia

Introduzione alla strumentazione e alla traccia

Altre risorse

Traccia e strumentazione di applicazioni