Esporta (0) Stampa
Espandi tutto

Classe TraceSwitch

Aggiornamento: novembre 2007

Fornisce un'opzione a più livelli per determinare l'output di analisi e di debug senza ricompilare il codice.

Spazio dei nomi:  System.Diagnostics
Assembly:  System (in System.dll)

public class TraceSwitch : Switch
public class TraceSwitch extends Switch
public class TraceSwitch extends Switch

È possibile utilizzare un'opzione di analisi per filtrare i messaggi in base alla loro importanza. La classe TraceSwitch fornisce le proprietà TraceError, TraceWarning, TraceInfo e TraceVerbose per verificare il livello dell'opzione. La proprietà Level ottiene o imposta l'oggetto TraceLevel dell'opzione.

È possibile impostare il livello di un oggetto TraceSwitch mediante il file di configurazione dell'applicazione e utilizzare quindi il valore di TraceSwitch configurato nell'applicazione. In alternativa, è possibile creare un oggetto TraceSwitch nel codice e impostare direttamente il livello per instrumentare una sezione di codice specifica.

Per configurare un oggetto TraceSwitch, modificare il file di configurazione corrispondente al nome dell'applicazione. All'interno di questo file è possibile aggiungere o rimuovere un'opzione, impostarne il valore o cancellare tutte le opzioni precedentemente impostate dall'applicazione. Il file di configurazione deve essere formattato in modo analogo a quello illustrato nell'esempio seguente:

<configuration>
  <system.diagnostics>
    <switches>
      <add name="mySwitch" value="1" />
    </switches>
  </system.diagnostics>
</configuration>

Questa sezione di configurazione definisce un oggetto TraceSwitch con la proprietà DisplayName impostata su mySwitch e la proprietà Level impostata su 1, che corrisponde al valore TraceLevel.Error dell'enumerazione.

Nota:

In .NET Framework versione 2.0 è possibile utilizzare il testo per specificare il valore per un'opzione. È ad esempio possibile utilizzare true per un'opzione BooleanSwitch oppure il testo che rappresenta un valore di enumerazione, quale Error per l'opzione TraceSwitch. La riga <add name="mySwitch" value="Error" /> è equivalente a <add name="mySwitch" value="1" />.

Nell'applicazione è possibile utilizzare il livello dell'opzione configurato creando un oggetto TraceSwitch con lo stesso nome, come illustrato nel seguente esempio:

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)
    {
        //...
    }
}

Per impostazione predefinita, la proprietà Level dell'opzione viene impostata utilizzando il valore specificato nel file di configurazione. Se il costruttore TraceSwitch non è in grado di trovare le impostazioni iniziali dell'opzione nel file di configurazione, la proprietà Level della nuova opzione viene impostata sul valore predefinito TraceLevel.Off.

Per utilizzare un'opzione è necessario attivare l'analisi o il debug. La sintassi che segue è la sintassi specifica del compilatore. Se si utilizza un compilatore diverso da C# o Visual Basic, fare riferimento alla documentazione specifica del compilatore.

  • Per attivare il debug in C#, aggiungere il flag /d:DEBUG alla riga di comando del compilatore durante la compilazione del codice oppure aggiungere #define DEBUG all'inizio del file. In Visual Basic, aggiungere il flag /d:DEBUG=True alla riga di comando del compilatore.

  • Per attivare l'analisi in C#, aggiungere il flag /d:TRACE alla riga di comando del compilatore durante la compilazione del codice oppure aggiungere #define TRACE all'inizio del file. In Visual Basic, aggiungere il flag /d:TRACE=True alla riga di comando del compilatore.

Nota:

Queste opzioni del compilatore per l'analisi e il debug non sono necessarie se si utilizza la classe TraceSwitch in isolamento. Sono necessarie solo con i metodi Trace o Debug compilati in modo condizionale.

Per ulteriori informazioni sugli strumenti a corredo delle applicazioni, vedere Debug e Trace. Per ulteriori informazioni sulla configurazione e l'utilizzo delle opzioni di analisi, vedere Opzioni di analisi.

Nota:

Per migliorare le prestazioni, è possibile rendere i membri TraceSwitch  static nella classe.

Nell'esempio di codice riportato di seguito viene creato un nuovo oggetto TraceSwitch e l'opzione viene utilizzata per determinare se visualizzare i messaggi di errore. L'opzione viene creata a livello della classe. MyMethod scrive il primo messaggio di errore se la proprietà Level è impostata su TraceLevel.Error o su un livello superiore. MyMethod tuttavia non scrive il secondo messaggio di errore se Level è inferiore a TraceLevel.Verbose.

//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 static TraceSwitch mySwitch =
    new TraceSwitch("General", "Entire Application");

public static void MyMethod()
{
    //Write the message if the TraceSwitch level is set to Error or higher.
    if (mySwitch.get_TraceError()) {
        Console.WriteLine("My error message.");
    }

    // Write the message if the TraceSwitch level is set to Verbose.
    if (mySwitch.get_TraceVerbose()) {
        Console.WriteLine("My second error message.");
    }
} //MyMethod

public static void main(String[] args)
{
    // Run the method that prints error messages based on the switch level.
    MyMethod();
} //main


Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition , Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

.NET Framework

Supportato in: 3.5, 3.0, 2.0, 1.1, 1.0

Aggiunte alla community

AGGIUNGI
Mostra:
© 2015 Microsoft