2012-10-20 4 views
17

Ich versuche, bessere Fehlerbehandlung und Debug-Logik in einer unserer Anwendungen zu schreiben. Kann jemand den Unterschied zwischen der Debug- und Trace-Klasse erklären? Die Dokumentation sieht sehr ähnlich aus. Ich möchte diese Klassen in Verbindung mit NLog verwenden, um unsere Debugging-Bemühungen zu verbessern.Was ist der Unterschied zwischen der Debug-Klasse und Trace-Klasse?

+1

Ein weiteres Gespräch über dieses Problem http://StackOverflow.com/Questions/179868/Trace-VS-Debug-in-Net-BCl –

Antwort

3

Debug wird während des Debuggens verwendet. Trace schreibt in die Protokolldatei. Es ist wie Logging. Beide sind sehr ähnlich, aber verfolgen für die langfristige Aufbewahrung, Debugging für Echtzeit-Debugging.

16

Die Klassen Debug und Trace haben sehr ähnliche Methoden. Der Hauptunterschied besteht darin, dass Aufrufe der Klasse Debug normalerweise nur in Debugbuild enthalten sind und Trace in allen Builds enthalten ist (Debuggen und Freigeben). Sie können dies über die Compilerflags DEBUG und TRACE steuern. Wenn Sie die Dokumentation für beide betrachten, werden Sie die ConditionalAttribute kommentieren, die Methoden notieren. Dies führt dazu, dass die Methodenaufrufe nur dann in die Binärdateien einbezogen werden, wenn das entsprechende Compiler-Flag definiert ist. Sie könnten Ihr eigenes Compiler-Flag definieren und es in ähnlicher Weise in Verbindung mit dem ConditionalAttribute verwenden. Beachten Sie, dass die Methoden nicht aus den kompilierten Binärdateien entfernt werden, wenn Sie das verwenden. Die Aufruf-Sites werden geändert, um die Methodenaufrufe zu entfernen.

Verwandte Themen