Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Dieser Artikel ist spezifisch für .NET Framework. Sie gilt nicht für neuere Implementierungen von .NET, einschließlich .NET 6 und höherer Versionen.
Mit Ablaufverfolgungsschaltern können Sie die Ablaufverfolgungsausgabe aktivieren, deaktivieren und filtern. Sie sind Objekte, die in Ihrem Code vorhanden sind und extern über die .config-Datei konfiguriert werden können. Es gibt drei Typen von Tracing-Schaltern, die im .NET Framework bereitgestellt werden: die BooleanSwitch Klasse, die TraceSwitch Klasse und die SourceSwitch Klasse. Die BooleanSwitch-Klasse fungiert als Umschalter, der eine Vielzahl von Protokollierungsaussagen entweder aktiviert oder deaktiviert. Mit den Klassen TraceSwitch und SourceSwitch können Sie einen Trace-Schalter für eine bestimmte Ablaufverfolgungsebene aktivieren, sodass die für diese Ebene angegebenen Trace-Nachrichten oder TraceSource-Nachrichten und alle Ebenen darunter angezeigt werden. Wenn Sie den Schalter deaktivieren, werden die Ablaufverfolgungsmeldungen nicht angezeigt. Alle diese Klassen werden von der abstrakten (MustInherit)-Klasse Switch abgeleitet, wie bei allen vom Benutzer entwickelten Switches.
Ablaufverfolgungsschalter können beim Filtern von Informationen hilfreich sein. Sie können beispielsweise jede Protokollnachricht in einem Datenzugriffsmodul anzeigen, aber nur Fehlermeldungen im Rest der Anwendung. In diesem Fall würden Sie einen Trace-Schalter für das Datenzugriffsmodul und einen für den Rest der Anwendung verwenden. Wenn Sie die .config-Datei verwenden, um die Schalter auf die entsprechenden Einstellungen zu konfigurieren, können Sie steuern, welche Arten von Protokollnachrichten Sie erhalten. Weitere Informationen finden Sie unter Wie man: Trace Switches erstellt, initialisiert und konfiguriert.
In der Regel wird eine bereitgestellte Anwendung mit deaktivierten Schaltern ausgeführt, sodass Benutzer nicht viele irrelevante Ablaufverfolgungsmeldungen beobachten müssen, die auf einem Bildschirm angezeigt werden oder eine Protokolldatei auffüllen, während die Anwendung ausgeführt wird. Wenn während der Anwendungsausführung ein Problem auftritt, können Sie die Anwendung beenden, die Schalter aktivieren und die Anwendung neu starten. Dann werden die Ablaufverfolgungsmeldungen angezeigt.
Um einen Switch zu verwenden, müssen Sie zuerst ein Switch-Objekt aus einer booleanSwitch-Klasse , einer TraceSwitch-Klasse oder einer entwicklerdefinierten Switchklasse erstellen. Weitere Informationen zum Erstellen entwicklerdefinierter Switches finden Sie in der Klasse Switch in der .NET Framework-Referenz. Anschließend legen Sie einen Konfigurationswert fest, der angibt, wann das Switch-Objekt verwendet werden soll. Dann testen Sie die Einstellung des Schalterobjekts in verschiedenen Trace -Ablaufverfolgungsmethoden (oder Debug-Ablaufverfolgungsmethoden).
Ablaufverfolgungsebenen
Wenn Sie TraceSwitch verwenden, gibt es zusätzliche Überlegungen. Ein TraceSwitch-Objekt verfügt über vier Eigenschaften, die boolesche Werte zurückgeben, die angeben, ob der Switch auf mindestens eine bestimmte Ebene festgelegt ist:
Ebenen ermöglichen es Ihnen, die Menge der Ablaufverfolgungsinformationen einzuschränken, die Sie erhalten, nur auf diese Informationen, die zum Lösen eines Problems erforderlich sind. Sie geben die gewünschte Detailebene in der Ablaufverfolgungsausgabe an, indem Sie Ablaufverfolgungsschalter auf die entsprechende Ablaufverfolgungsebene festlegen und konfigurieren. Sie können Fehlermeldungen, Warnmeldungen, Informationsmeldungen, ausführliche Ablaufverfolgungsmeldungen oder gar keine Meldungen erhalten.
Es liegt ganz an Ihnen, zu entscheiden, welche Art von Nachricht jeder Ebene zugeordnet werden soll. In der Regel hängt der Inhalt der Ablaufverfolgungsnachrichten davon ab, was Sie jeder Ebene zuordnen, aber Sie bestimmen die Unterschiede zwischen Ebenen. Möglicherweise möchten Sie detaillierte Beschreibungen eines Problems auf Ebene 3 (Info) angeben, aber nur eine Fehlerreferenznummer auf Ebene 1 (Fehler) angeben. Es liegt ganz an Ihnen, zu entscheiden, welches Schema in Ihrer Anwendung am besten funktioniert.
Diese Eigenschaften entsprechen den Werten 1 bis 4 der TraceLevel-Aufzählung . In der folgenden Tabelle sind die Ebenen der TraceLevel-Aufzählung und deren Werte aufgeführt.
| Aufzählungswert | Ganzzahliger Wert | Angezeigter (oder in angegebenes Ausgabeziel geschriebener) Meldungstyp |
|---|---|---|
| Aus | 0 | Nichts |
| Fehler | 1 | Nur Fehlermeldungen |
| Warnung | 2 | Warnmeldungen und Fehlermeldungen |
| Info | 3 | Informationsmeldungen, Warnmeldungen und Fehlermeldungen |
| Ausführlich | 4 | Ausführliche Meldungen, Informationsmeldungen, Warnmeldungen und Fehlermeldungen |
Die TraceSwitch -Eigenschaften geben die oberste Ablaufverfolgungsebene für den Schalter an. Das bedeutet, dass Ablaufverfolgungsinformationen sowohl für die angegebene Ebene als auch für alle niedrigeren Ebenen geschrieben werden. Wenn "TraceInfo" beispielsweise "true" ist, sind "TraceError" und "TraceWarning" ebenfalls "true", aber "TraceVerbose" könnte "false" sein.
Diese Eigenschaften sind schreibgeschützt. Das TraceSwitch-Objekt legt sie automatisch fest, wenn die TraceLevel-Eigenschaft festgelegt wird. Beispiel:
Dim myTraceSwitch As New TraceSwitch("SwitchOne", "The first switch")
myTraceSwitch.Level = TraceLevel.Info
' This message box displays true, because setting the level to
' TraceLevel.Info sets all lower levels to true as well.
MessageBox.Show(myTraceSwitch.TraceWarning.ToString())
' This messagebox displays false.
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString())
System.Diagnostics.TraceSwitch myTraceSwitch =
new System.Diagnostics.TraceSwitch("SwitchOne", "The first switch");
myTraceSwitch.Level = System.Diagnostics.TraceLevel.Info;
// This message box displays true, because setting the level to
// TraceLevel.Info sets all lower levels to true as well.
MessageBox.Show(myTraceSwitch.TraceWarning.ToString());
// This message box displays false.
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString());
Entwicklerdefinierte Schalter
Zusätzlich zur Bereitstellung von BooleanSwitch und TraceSwitch können Sie Ihre eigenen Switches definieren, indem Sie von der Switch-Klasse erben und die Basisklassenmethoden mit benutzerdefinierten Methoden überschreiben. Weitere Informationen zum Erstellen entwicklerdefinierter Switches finden Sie in der Klasse Switch in der .NET Framework-Referenz.