2012-10-20 16 views
17

Sto tentando di scrivere una migliore gestione degli errori e la logica di debug in una delle nostre applicazioni. Qualcuno può spiegare la differenza tra la classe Debug e Trace? La documentazione sembra abbastanza simile. Voglio utilizzare queste classi in collaborazione con NLog per migliorare i nostri sforzi di debug.Qual è la differenza tra la classe Debug e la classe Trace?

+1

Un'altra conversazione su questo problema http://stackoverflow.com/questions/179868/trace-vs-debug-in-net-bcl –

risposta

3

Il debug viene utilizzato durante il debug. Trace sta scrivendo nel file di registro. È un po 'come la registrazione. Entrambi sono molto simili, ma tracciano la conservazione a lungo termine, eseguendo il debug per il debugging in tempo reale.

16

Le classi Debug e Trace hanno metodi molto simili. La differenza principale è che le chiamate alla classe Debug sono in genere incluse solo in Debug build e Trace sono incluse in tutte le build (Debug e Release). Puoi controllarlo attraverso i flag del compilatore DEBUG e TRACE. Se si guarda la documentazione per entrambi, si noterà lo ConditionalAttribute annotando i metodi. Ciò fa sì che le chiamate al metodo vengano incluse nei binari solo quando viene definito il flag del compilatore appropriato. È possibile definire il proprio flag del compilatore e utilizzarlo in combinazione con lo ConditionalAttribute in modo simile. Nota che se lo usi, i metodi non vengono rimossi dai binari compilati. I siti di chiamata vengono modificati per rimuovere le chiamate al metodo.

Problemi correlati