Opzioni di tracciaTrace Switches

Le opzioni di traccia consentono di abilitare, disabilitare e filtrare l'output di traccia.Trace switches enable you to enable, disable, and filter tracing output. Si tratta di oggetti presenti nel codice che possono essere configurati esternamente tramite il file CONFIG.They are objects that exist in your code and can be configured externally through the .config file. Esistono tre tipi di opzioni di traccia in .NET Framework, ossia le classi BooleanSwitch , TraceSwitch e SourceSwitch .There are three types of trace switches provided in the .NET Framework: the BooleanSwitch class, the TraceSwitch class, and the SourceSwitch class. La classe BooleanSwitch funge da opzione di attivazione o disabilitazione per diverse istruzioni di traccia.The BooleanSwitch class acts as a toggle switch, either enabling or disabling a variety of trace statements. 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 quel livello e per tutti i livelli inferiori.The TraceSwitch and SourceSwitch classes allow you to enable a trace switch for a particular tracing level so that the Trace or TraceSource messages specified for that level and all levels below it appear. Se si disabilita l'opzione, i messaggi di traccia non verranno visualizzati.If you disable the switch, the trace messages will not appear. Tutte queste classi derivano dalla classeSwitch( MustInherit) astratta, come avviene per ogni opzione sviluppata dall'utente.All these classes derive from the abstract (MustInherit) class Switch, as should any user-developed switches.

Le opzioni di traccia possono essere utili per filtrare informazioni.Trace switches can be useful for filtering information. Può essere ad esempio necessario visualizzare ogni messaggio di traccia in un modulo di accesso ai dati, ma solo i messaggi di errore nel resto dell'applicazione.For example, you might want to see every tracing message in a data access module, but only error messages in the rest of the application. In questo caso, si usa un'opzione di traccia per il modulo di accesso ai dati e un'opzione per il resto dell'applicazione.In that case, you would use one trace switch for the data access module and one switch for the rest of the application. Usando il file CONFIG per configurare le opzioni sulle impostazioni appropriate, è possibile controllare il tipo di messaggi di traccia ricevuti.By using the .config file to configure the switches to the appropriate settings, you could control what types of trace message you received. Per altre informazioni, vedere Procedura: Creare, inizializzare e configurare opzioni di traccia.For more information, see How to: Create, Initialize and Configure Trace Switches.

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.Typically, a deployed application is executed with its switches disabled, so that users need not observe a lot of irrelevant trace messages appearing on a screen or filling up a log file as the application runs. Se si verifica un problema durante l'esecuzione dell'applicazione, è possibile arrestare l'applicazione, attivare le opzioni e riavviare l'applicazione.If a problem arises during application execution, you can stop the application, enable the switches, and restart the application. I messaggi di tracciatura verranno quindi visualizzati.Then the tracing messages will be displayed.

Per usare un'opzione è prima di tutto necessario creare un oggetto opzione da una classe BooleanSwitch , da una classe TraceSwitch o da una classe di opzione definita dallo sviluppatore.To use a switch you must first create a switch object from a BooleanSwitch class, a TraceSwitch class, or a developer-defined switch class. Per altre informazioni sulla creazione di opzioni definite dallo sviluppatore, vedere la classe Switch negli argomenti di riferimento su .NET Framework.For more information about creating developer-defined switches, see the Switch class in the .NET Framework reference. Si imposta poi un valore di configurazione che specifica quando occorre usare l'oggetto opzione.Then you set a configuration value that specifies when the switch object is to be used. Si procede quindi alla verifica dell'impostazione dell'oggetto opzione in diversi metodi di traccia Trace o Debug.You then test the setting of the switch object in various Trace (or Debug) tracing methods.

Livelli di tracciaTrace Levels

L'uso di TraceSwitchcomporta considerazioni aggiuntive.When you use TraceSwitch, there are additional considerations. Un oggetto TraceSwitch ha quattro proprietà che restituiscono valori Boolean che indicano se l'opzione è impostata su almeno un livello particolare:A TraceSwitch object has four properties that return Boolean values indicating whether the switch is set to at least a particular level:

I livelli permettono di limitare la quantità di informazioni di traccia ricevute unicamente alle informazioni necessarie per risolvere un problema.Levels allow you to limit the amount of tracing information you receive to only that information needed to solve a problem. Si specifica il livello di dettaglio desiderato nell'output di traccia impostando e configurando le opzioni di traccia al livello di traccia appropriato.You specify the level of detail you want in your tracing output by setting and configuring trace switches to the appropriate trace level. È possibile ricevere messaggi di errore, messaggi di avviso, messaggi informativi, messaggi di traccia dettagliati o nessun messaggio.You can receive error messages, warning messages, informational messages, verbose tracing messages, or no message at all.

È possibile decidere quale tipo di messaggi associare a ogni livello.It is entirely up to you to decide what kind of message to associate with each level. In genere il contenuto dei messaggi di traccia dipende da ciò che viene associato a ogni livello, ma è possibile stabilire le differenze tra i livelli.Typically, the content of tracing messages depends on what you associate with each level, but you determine the differences between levels. È 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).You might want to provide detailed descriptions of a problem at level 3 (Info), for example, but provide only an error reference number at level 1 (Error). È possibile stabilire lo schema più adatto per ogni applicazione.It is entirely up to you to decide what scheme works best in your application.

Queste proprietà corrispondono ai valori da 1 a 4 dell'enumerazione TraceLevel .These properties correspond to the values 1 through 4 of the TraceLevel enumeration. La tabella seguente elenca i livelli dell'enumerazione TraceLevel e i rispettivi valori.The following table lists the levels of the TraceLevel enumeration and their values.

Valore enumeratoEnumerated value Valore IntegerInteger value Tipo di messaggio visualizzato o scritto in una destinazione di output specificataType of message displayed (or written to a specified output target)
DisattivatoOff 00 nessunoNone
ErrorError 11 Solo messaggi di errore.Only error messages
AvvisoWarning 22 Messaggi di avviso e messaggi di errore.Warning messages and error messages
InfoInfo 33 Messaggi informativi, messaggi di avviso e messaggi di errore.Informational messages, warning messages, and error messages
DettagliatoVerbose 44 Messaggi dettagliati, messaggi informativi, messaggi di avviso e messaggi di errore.Verbose messages, informational messages, warning messages, and error messages

Le proprietà TraceSwitch indicano il livello di traccia massimo per l'opzione,The TraceSwitch properties indicate the maximum trace level for the switch. ovvero l'informazione di traccia viene scritta per il livello specificato e per tutti i livelli inferiori.That is, tracing information is written for the level specified as well as for all lower levels. Se, ad esempio TraceInfo è true, anche TraceError e TraceWarning saranno true ma TraceVerbose potrebbe essere false.For example, if TraceInfo is true, then TraceError and TraceWarning are also true but TraceVerbose might well be false.

Queste proprietà sono di sola lettura.These properties are read-only. L'oggetto TraceSwitch le imposta automaticamente quando viene impostata la proprietà TraceLevel .The TraceSwitch object automatically sets them when the TraceLevel property is set. Ad esempio:For example:

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());  

Opzioni definite dallo sviluppatoreDeveloper-Defined Switches

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.In addition to providing BooleanSwitch and TraceSwitch, you can define your own switches by inheriting from the Switch class and overriding the base class methods with customized methods. Per altre informazioni sulla creazione di opzioni definite dallo sviluppatore, vedere la classe Switch negli argomenti di riferimento su .NET Framework.For more information about creating developer-defined switches, see the Switch class in the .NET Framework reference.

Vedere ancheSee Also

Listener di tracciaTrace Listeners
Procedura: aggiungere istruzioni di traccia al codice dell'applicazioneHow to: Add Trace Statements to Application Code
Traccia e strumentazione di applicazioniTracing and Instrumenting Applications