L' oggetto Trace

L' oggetto Trace viene usato per l'analisi del codice durante l' esecuzione in modalità release dell' applicazione.
Questa Classe non può essere ereditata.

Di Default la Classe Trace é abilitata nelle build, cosi che l' utente può scegliere a runtime se abilitarla o meno senza dover ri-compilare. Si compone di 6 metodi principali per la visualizzazione del messaggio.
Assert : si verifica se la condizione che la lancia é false.
Fail : si verifica
Write e WriteLine : forniscono un messaggio di output, la seconda inserisce dopo il messaggio anche un invio a capo.
WriteIf e WriteLineIf : forniscono un messaggiodi output rispettivamente senza e con ritorno a capo, ma solo se si verifica la condizione.

Con due proprietà la classe Trace può essere attivata o meno, con BooleanSwitch impostiamo una proprietà a True o False in base alla necesità o meno di visualizzare la Classe, é buona norma impostare questo switch nel File di Configurazione.
Oltre a questo switch, abbiamo un secondo switch, Trace Switch che ci consente un controllo maggiore e fornisce la possibilità di filtrare gli errori in base alla loro importanza. Vi sono 4 livelli che in ordine sono :

  • 0 - Off : impostazione di default, non attivo.
  • 1 - Error : messaggi di gestione dell' errore.
  • 2 - Warning : genera avvisi e messaggi sugli errori.
  • 3 - Info : genera messaggi informativi e di gestione degli errori.
  • 4 - Verbose : genera tutti i messaggi di errore.

Infine vediamo i Listeners che possiamo creare con questa Classe.
In totale abbiamo tre tipologie di Listener :

  • DefaultTraceListener
    • il messaggio viene inviato nella finestra output.
  • TextWriterTraceListener
    • il messaggio può essere inviato o ad un oggetto TextWrite o ad un oggetto Stream.
  • EventLogTraceListener
    • gestisce gli errori nel event log di windows, con la proprietà name inpostiamo il nome del log.

Vi ricordo che ogni qual volta si vuole usare una personalizzazione della Classe Trace Listener é buona norma inserire l' istanza creata nei Listeners della Classe generale Trace.

Ultime, mi sembra corretto evidenziare anche alcune proprietà importanti.
AutoFlush impostata a true pulisce il trace output dopo ogni comando di scrittura. Flush é un metodo che pulisce il buffer. Se il Listener é stato inserito nella collection dei listeners della classe Trace, il metodo Flush é invocato automaticamente.