TraceSwitch und SourceSwitch - was ist der Unterschied?

8

Also vermisse ich hier wahrscheinlich das Offensichtliche, aber was ist eigentlich der Unterschied zwischen der Funktionalität von TraceSwitch und SourceSwitch Klassen ?

Beide geben identische zusammenfassende Beschreibungen:

  

Bietet einen Multilevel-Switch zur Steuerung der Ablaufverfolgung und Debugausgabe, ohne dass der Code neu kompiliert wird.

Sind die Bemerkungen-Abschnitte meinen Augen seltsam ähnlich? Könnte jemand bitte den Unterschied in ihren Funktionen und Anwendungsfällen klären?

(Der Vollständigkeit halber verwende ich Schalter mit meinem TraceSource -Objekt und nicht mit der alten statischen Trace -Klasse, obwohl ich bezweifle, dass es einen großen Unterschied macht.)

    
Noldorin 11.09.2010, 16:28
quelle

3 Antworten

9

Der Unterschied besteht darin, dass TraceSwitch mit Trace messages arbeitet, während SourceSwitch mit TraceSource messages arbeitet, die die Nachrichten ihrer Quelle zuordnen. Also mit einem SourceSwitch können Sie Ihre Listener basierend darauf konfigurieren, woher die Trace-Nachrichten kommen.

Ich stimme zu, dass die Dokumentation nicht direkt auf den Unterschied hinweist, aber grabe dich in der entsprechenden TraceSource Klassendokumentation und Sie werden folgendes finden:

  

Die Klasse TraceSource ist mit gekennzeichnet   der Name einer Quelle, normalerweise der   Name der Anwendung Die Spur   Nachrichten kommen von einem bestimmten   Komponente kann von a initiiert werden   bestimmte Spurenquelle, die alle erlaubt   Nachrichten von dieser Komponente an   leicht identifiziert werden.

Es gibt auch ein Beispiel, das zeigt, wie Sie SourceSwitch konfigurieren, um die Ablaufverfolgung von einer Ablaufverfolgungsquelle zu deaktivieren.

    
GraemeF 11.09.2010, 17:01
quelle
5

Der (ältere) TraceSwitch ist grundsätzlich ein TraceLevel-Objekt, das in Kombination mit der statischen Trace-Klasse verwendet werden soll.

Die (neuere) TraceSource kombiniert ein TraceLevel-Konzept mit tatsächlichen Ausgabemethoden.

Als Konsequenz können Sie in einer großen App mehrere TraceSwitches verwenden, um Trace-Einstellungen für verschiedene Teile (GUI, DAL) des Programms zu konfigurieren, aber alle Ausgaben werden an dieselben TraceListener gesendet.

Mit einer TraceSource können Sie unabhängige Ausgabekanäle haben. Und eine etwas bessere API.

    
Henk Holterman 11.09.2010 17:06
quelle
0

Diese Erklärung des Unterschieds zwischen TraceLevel und SourceLevel könnte helfen:

System.Diagnostics versteckte SourceLevels

    
user423430 25.10.2010 18:51
quelle

Tags und Links