Es scheint, dass dieTrace vs Debug in .NET BCL
weitgehend die gleichen sind, mit der bemerkenswerten Ausnahme, dass Debug Nutzung aus kompiliert in einer Release-Konfiguration.
Wann würden Sie das eine und nicht das andere verwenden? Die einzige Antwort, die ich bis jetzt ausgegraben habe, ist nur, dass Sie die Klasse Debug verwenden, um eine Ausgabe zu erzeugen, die Sie nur in der Debug-Konfiguration sehen, und Trace bleibt in einer Release-Konfiguration, aber das ist nicht wirklich Beantworte die Frage in meinem Kopf.
Wenn Sie Ihren Code Instrument fahren, warum sollten Sie jemals Debug, verwenden, da Trace kann ohne erneute Kompilierung ausgeschaltet werden?
Ich stimme nicht vollständig mit dieser Antwort. Trace ist eine niedrigere Ebene als Debug und sollte niemals in der Produktion verwendet werden. Nach meiner Erfahrung wird Trace am Anfang von Methoden verwendet oder "verfolgt" ein Stück Arbeit, während es einen Workflow durchläuft und in gewisser Weise den Aufruf-Stack zeigt. Alles über und mit Info sollte die einzigen Ebenen sein, die in der Produktion verwendet werden. Das sind Info, Warnung, Fehler, Fatal. –
Ich denke, ein weiterer Unterschied ist, dass Sie [Trace-Listener] (http://msdn.microsoft.com/en-us/library/4y5y10s7 (v = vs.110) .aspx) in Ihrer Anwendung konfigurieren und die Ausgabe routen können der Spur entsprechend. Der standardmäßige Ablaufverfolgungslistener in Visual Studio leitet die Ablaufverfolgungsmeldungen an den Debug-Ausgabestream weiter. – orad
Tracing ist etwas, ** was ** sollte in der Produktion verwendet werden. Es ist so wichtig, dass ** jedes ** Subsystem von Windows Tracing-Code enthält. Jede Festplattensuche, jede Speicherzuordnung, jeder Interrupt, jede CPU-Kontextumschaltung, jeder Thread-Zeitplan hat einen eingeblendeten Verfolgungscode. Die Event Tracing für Windows-Plattform (ETW) ist ein außerordentlich einfaches Verfolgungssystem, das jeder jederzeit aktivieren kann Windows PC. Die [System.Diagnostics.Tracing.EventSource] (https://msdn.microsoft.com/en-us/library/system.diagnostics.tracing.eventsource.aspx) ist die verwaltete Möglichkeit, Ablaufverfolgungsereignisse an ETW zu senden. –