2009-08-06 10 views
5

Ho un'eccezione che ho bisogno di ingoiare (eccezione durante la registrazione), tuttavia non voglio che le informazioni sulle eccezioni siano completamente perse nella notte dei tempi e quindi ho pensato che almeno output di debug medianteScrivi su debug in modalità di rilascio

Debug.Write(ex.ToString()); 

questo modo se diventa necessario supporto può almeno utilizzare DebugView sui problemi della macchina avendo.

Problema: la classe di debug viene rimossa in modalità di rilascio: come faccio a generare qualcosa per eseguire il debug in modalità di rilascio?

risposta

16

Basta usare

Trace.Write(ex.ToString()); 

Questo fa la stessa come Debug.Write(ex.ToString()); ma non verrà rimosso in modalità di rilascio (a patto che non ha rimosso la definizione della costante TRACE nelle impostazioni di progetto)

+3

Ricordarsi di ruotare i file di registro dopo ~ 14 giorni per evitare di riempire il disco rigido. – JBRWilkinson

2

Forse varrebbe la pena esaminare alcuni framework di registrazione. Preferisco log4net in cui si hanno diversi livelli di registrazione (DEBUG, INFO, WARN, ERRORE), diversi logger (è possibile inserire un logger per ogni parte importante dell'applicazione) e si possono impostare diversi livelli di debug per diversi logger semplicemente cambiando il file di configurazione. Quindi se hai un problema in qualche area del codice puoi impostare il livello DEBUG per quel logger e quando hai finito puoi riportare il livello originale.

Questo graffia la superficie, ci sono molte altre funzionalità, come l'invio di e-mail su errori, o l'accesso al DB.