TraceSwitch Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen mehrstufigen Switch bereit, um die Ablaufverfolgung zu steuern und die Ausgabe zu debuggen, ohne den Code neu zu kompilieren.
public ref class TraceSwitch : System::Diagnostics::Switch
public class TraceSwitch : System.Diagnostics.Switch
type TraceSwitch = class
inherit Switch
Public Class TraceSwitch
Inherits Switch
- Vererbung
Beispiele
Im folgenden Codebeispiel wird ein neues TraceSwitch Beispiel erstellt und der Schalter verwendet, um zu bestimmen, ob Fehlermeldungen gedruckt werden sollen. Der Schalter wird auf Klassenebene erstellt.
MyMethod schreibt die erste Fehlermeldung, wenn die Level Eigenschaft auf TraceLevel.Error oder höher festgelegt ist. Schreibt jedoch nicht die zweite Fehlermeldung, MyMethod wenn dies Level kleiner als TraceLevel.Verboseist.
//Class-level declaration.
/* Create a TraceSwitch to use in the entire application.*/
static TraceSwitch mySwitch = new TraceSwitch("General", "Entire Application");
static public void MyMethod()
{
// Write the message if the TraceSwitch level is set to Error or higher.
if (mySwitch.TraceError)
Console.WriteLine("My error message.");
// Write the message if the TraceSwitch level is set to Verbose.
if (mySwitch.TraceVerbose)
Console.WriteLine("My second error message.");
}
public static void Main(string[] args)
{
// Run the method that prints error messages based on the switch level.
MyMethod();
}
' Class-level declaration.
' Create a TraceSwitch to use in the entire application.
Private Shared mySwitch As New TraceSwitch("General", "Entire Application")
Public Shared Sub MyMethod()
' Write the message if the TraceSwitch level is set to Error or higher.
If mySwitch.TraceError Then
Console.WriteLine("My error message.")
End If
' Write the message if the TraceSwitch level is set to Verbose.
If mySwitch.TraceVerbose Then
Console.WriteLine("My second error message.")
End If
End Sub
Public Shared Sub Main()
' Run the method that prints error messages based on the switch level.
MyMethod()
End Sub
Hinweise
Sie können einen Ablaufverfolgungswechsel verwenden, um Nachrichten basierend auf ihrer Wichtigkeit herauszufiltern. Die TraceSwitch Klasse stellt die TraceErrorEbenen TraceWarningdes Schalters , , TraceInfound TraceVerbose Eigenschaften zum Testen der Switchebene bereit. Die Level Eigenschaft ruft die Option TraceLevelab oder legt sie fest.
Sie können einen TraceSwitch codespezifischen Code erstellen und die Ebene direkt festlegen, um einen bestimmten Codeabschnitt zu instrumentieren.
In .NET Framework-Apps können Sie auch die Ebene einer TraceSwitch über die Anwendungskonfigurationsdatei festlegen und dann die konfigurierte TraceSwitch Ebene in Ihrer Anwendung verwenden. In der Anwendungskonfigurationsdatei können Sie einen Switch hinzufügen oder entfernen, den Wert eines Switchs festlegen oder alle zuvor von der Anwendung festgelegten Schalter löschen. Die Konfigurationsdatei sollte wie im folgenden Beispiel formatiert werden:
<configuration>
<system.diagnostics>
<switches>
<add name="mySwitch" value="1" />
</switches>
</system.diagnostics>
</configuration>
In diesem Konfigurationsabschnitt wird ein TraceSwitch Wert mit dem DisplayName Wert "auf mySwitch" und " Level 1" definiert, der dem Enumerationswert TraceLevel.Errorentspricht.
Hinweis
Sie können auch Text verwenden, um den Wert für einen Schalter anzugeben. For example, true for a BooleanSwitch, or the text representing an enumeration value, such Error as for a TraceSwitch. Die Zeile <add name="mySwitch" value="Error" /> entspricht <add name="mySwitch" value="1" />.
In Ihrer Anwendung können Sie die konfigurierte Switchebene verwenden, indem Sie einen TraceSwitch mit demselben Namen erstellen, wie im folgenden Beispiel gezeigt:
private static TraceSwitch appSwitch = new TraceSwitch("mySwitch",
"Switch in config file");
public static void Main(string[] args)
{
//...
Console.WriteLine("Trace switch {0} configured as {1}",
appSwitch.DisplayName, appSwitch.Level.ToString());
if (appSwitch.TraceError)
{
//...
}
}
Private Shared appSwitch As new TraceSwitch("mySwitch", _
"Switch in config file")
Public Shared Sub Main(args As String())
'...
Console.WriteLine("Trace switch {0} configured as {1}",
appSwitch.DisplayName, appSwitch.Level.ToString())
If appSwitch.TraceError = True Then
'...
End If
End Sub
In .NET Core- und .NET 5+-Apps ist der Level neue Switch standardmäßig auf TraceLevel.Off.NET Core und .NET 5+ festgelegt.
In .NET Framework-Apps wird die Switch-Eigenschaft Level standardmäßig auf den in der Konfigurationsdatei angegebenen Wert festgelegt. Wenn der Konstruktor die TraceSwitch anfänglichen Switcheinstellungen in der Konfigurationsdatei nicht finden kann, Level ist der neue Switch standardmäßig auf TraceLevel.Off.
Sie müssen die Ablaufverfolgung oder das Debuggen aktivieren, um einen Switch zu verwenden. Die folgende Syntax ist compilerspezifisch. Wenn Sie andere Compiler als C# oder Visual Basic verwenden, lesen Sie die Dokumentation für den Compiler.
Um das Debuggen in C# zu aktivieren, fügen Sie die
/d:DEBUGKennzeichnung der Compiler-Befehlszeile hinzu, wenn Sie den Code kompilieren oder am Anfang der Datei hinzufügen#define DEBUG. Fügen Sie in Visual Basic der Compiler-Befehlszeile das/d:DEBUG=TrueFlag hinzu.Um die Ablaufverfolgung in C# zu aktivieren, fügen Sie die
/d:TRACEKennzeichnung der Compiler-Befehlszeile hinzu, wenn Sie den Code kompilieren oder am Anfang der Datei hinzufügen#define TRACE. Fügen Sie in Visual Basic der Compiler-Befehlszeile das/d:TRACE=TrueFlag hinzu.
Hinweis
Diese Debug- und Ablaufverfolgungscompiler-Switches sind nicht erforderlich, wenn die TraceSwitch Klasse isoliert verwendet wird. Sie sind nur in Verbindung mit Trace oder Debug Methoden erforderlich, die bedingt kompiliert werden.
Weitere Informationen zur Instrumentierung Ihrer Anwendung finden Sie unter Debug und Trace. Weitere Informationen zum Konfigurieren und Verwenden von Ablaufverfolgungsschaltern finden Sie unter Trace Switches.
Hinweis
Um die Leistung zu verbessern, können Sie Mitglieder static in Ihrem Kurs erstellenTraceSwitch.
Konstruktoren
| Name | Beschreibung |
|---|---|
| TraceSwitch(String, String, String) |
Initialisiert eine neue Instanz der TraceSwitch Klasse unter Verwendung des angegebenen Anzeigenamens, der Beschreibung und des Standardwerts für den Switch. |
| TraceSwitch(String, String) |
Initialisiert eine neue Instanz der TraceSwitch Klasse unter Verwendung des angegebenen Anzeigenamens und der angegebenen Beschreibung. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Attributes |
Ruft die in der Anwendungskonfigurationsdatei definierten benutzerdefinierten Switchattribute ab. (Geerbt von Switch) |
| DefaultValue |
Ruft den im Konstruktor zugewiesenen Standardwert ab. (Geerbt von Switch) |
| Description |
Ruft eine Beschreibung des Schalters ab. (Geerbt von Switch) |
| DisplayName |
Ruft einen Namen ab, der zum Identifizieren des Schalters verwendet wird. (Geerbt von Switch) |
| Level |
Dient zum Abrufen oder Festlegen der Ablaufverfolgungsebene, die die Nachrichten bestimmt, die der Switch zulässt. |
| SwitchSetting |
Dient zum Abrufen oder Festlegen der aktuellen Einstellung für diesen Schalter. (Geerbt von Switch) |
| TraceError |
Ruft einen Wert ab, der angibt, ob der Schalter Fehlerbehandlungsmeldungen zulässt. |
| TraceInfo |
Ruft einen Wert ab, der angibt, ob der Schalter Informationsmeldungen zulässt. |
| TraceVerbose |
Ruft einen Wert ab, der angibt, ob der Schalter alle Nachrichten zulässt. |
| TraceWarning |
Ruft einen Wert ab, der angibt, ob die Option Warnmeldungen zulässt. |
| Value |
Dient zum Abrufen oder Festlegen des Werts des Schalters. (Geerbt von Switch) |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetSupportedAttributes() |
Ruft die benutzerdefinierten Attribute ab, die von der Option unterstützt werden. (Geerbt von Switch) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| OnSwitchSettingChanged() |
Aktualisiert und korrigiert die Ebene für diesen Switch. |
| OnValueChanged() |
Legt die SwitchSetting Eigenschaft auf die ganze Zahl der Value Eigenschaft fest. |
| Refresh() |
Aktualisiert die Ablaufverfolgungskonfigurationsdaten. (Geerbt von Switch) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |