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 Schalter bereit, mit dem mehrere Ebenen ausgewählt und so Ablaufverfolgungs- und Debugausgabe gesteuert werden können, ohne dass der Code hierfür neu kompiliert werden muss.
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 erstellt und mithilfe des Schalters bestimmt, ob Fehlermeldungen ausgegeben 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 kleiner Level als TraceLevel.Verboseist.
// Class-level declaration.
/* Create a TraceSwitch to use in the entire application.*/
private:
static TraceSwitch^ mySwitch = gcnew TraceSwitch( "General", "Entire Application" );
public:
static 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." );
}
static void main()
{
// 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.*/
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 Ablaufverfolgungsschalter verwenden, um Nachrichten basierend auf ihrer Wichtigkeit herauszufiltern. Die TraceSwitch -Klasse stellt die TraceErrorEigenschaften , TraceWarning, TraceInfound TraceVerbose bereit, um die Ebene des Schalters zu testen. Die Level -Eigenschaft ruft den -Schalter ab oder legt diese TraceLevelfest.
Sie können einen TraceSwitch in Ihrem Code erstellen und die Ebene direkt festlegen, um einen bestimmten Codeabschnitt zu instrumentieren.
Nur in .NET Framework Apps können Sie auch die Ebene eines 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 Switches festlegen oder alle zuvor von der Anwendung festgelegten Switches löschen. Die Konfigurationsdatei sollte wie im folgenden Beispiel formatiert sein:
<configuration>
<system.diagnostics>
<switches>
<add name="mySwitch" value="1" />
</switches>
</system.diagnostics>
</configuration>
In diesem Konfigurationsabschnitt wird eine TraceSwitch definiert, wobei auf DisplayName festgelegt mySwitch
ist, und die Level auf 1 festgelegt ist, was dem Enumerationswert TraceLevel.Errorentspricht.
Hinweis
Sie können auch Text verwenden, um den Wert für einen Schalter anzugeben. Beispielsweise für einen BooleanSwitchoder den Text, true
der einen Enumerationswert darstellt, zError
. B. für ein TraceSwitch. Die Zeile <add name="mySwitch" value="Error" />
ist gleichbedeutend mit <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 = gcnew TraceSwitch("mySwitch",
"Switch in config file");
public:
static void Main(array<String^>^ args)
{
//...
Console::WriteLine("Trace switch {0} configured as {1}",
appSwitch->DisplayName, appSwitch->Level.ToString());
if (appSwitch->TraceError)
{
//...
}
}
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 des neuen Schalters standardmäßig auf TraceLevel.Off.
In .NET Framework-Apps ist die switch-Eigenschaft Level standardmäßig auf den in der Konfigurationsdatei angegebenen Wert festgelegt. Wenn der TraceSwitch Konstruktor die anfänglichen Switcheinstellungen in der Konfigurationsdatei nicht finden kann, Level ist der neue Switch standardmäßig auf TraceLevel.Offfestgelegt.
Sie müssen die Ablaufverfolgung oder das Debuggen aktivieren, um einen Switch verwenden zu können. Die folgende Syntax ist compilerspezifisch. Wenn Sie andere Compiler als C# oder Visual Basic verwenden, lesen Sie die Dokumentation für Ihren Compiler.
Um das Debuggen in C# zu aktivieren, fügen Sie das
/d:DEBUG
Flag der Compilerbefehlszeile hinzu, wenn Sie Ihren Code kompilieren, oder fügen Sie am Anfang der Datei hinzu#define DEBUG
. Fügen Sie in Visual Basic der Compilerbefehlszeile das/d:DEBUG=True
Flag hinzu.Um die Ablaufverfolgung in C# zu aktivieren, fügen Sie das
/d:TRACE
Flag der Compilerbefehlszeile hinzu, wenn Sie Ihren Code kompilieren, oder fügen Sie am Anfang der Datei hinzu#define TRACE
. Fügen Sie in Visual Basic der Compilerbefehlszeile das/d:TRACE=True
Flag hinzu.
Hinweis
Diese Debug- und Ablaufverfolgungscompilerschalter sind nicht erforderlich, wenn die TraceSwitch -Klasse isoliert verwendet wird. Sie sind nur in Verbindung mit Trace methoden oder Debug 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 Ablaufverfolgungsswitches.
Hinweis
Um die Leistung zu verbessern, können Sie Mitglieder static
in Ihrer Klasse erstellenTraceSwitch.
Konstruktoren
TraceSwitch(String, String) |
Initialisiert eine neue Instanz der TraceSwitch-Klasse unter Verwendung des angegebenen Anzeigenamens und der angegebenen Beschreibung. |
TraceSwitch(String, String, String) |
Initialisiert eine neue Instanz der TraceSwitch-Klasse unter Verwendung des angegebenen Anzeigenamens, der angegebenen Beschreibung und des Standardwerts für den Schalter. |
Eigenschaften
Attributes |
Ruft die benutzerdefinierten Schalterattribute ab, die in der Anwendungskonfigurationsdatei definiert sind. (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 zum Bezeichnen des Schalters ab. (Geerbt von Switch) |
Level |
Ruft die Ablaufverfolgungsebene ab, die die Meldungen bestimmt, die der Schalter zulässt, oder legt diese fest. |
SwitchSetting |
Ruft die aktuelle Einstellung des Schalters ab oder legt diese fest. (Geerbt von Switch) |
TraceError |
Ruft einen Wert ab, der angibt, ob der Schalter Meldungen zur Fehlerbehandlung 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 Meldungen zulässt. |
TraceWarning |
Ruft einen Wert ab, der angibt, ob der Schalter Warnmeldungen zulässt. |
Value |
Ruft den Wert des Schalters ab oder legt diesen fest. (Geerbt von Switch) |
Methoden
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetSupportedAttributes() |
Ruft die benutzerdefinierten Attribute ab, die vom Schalter unterstützt werden. (Geerbt von Switch) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
OnSwitchSettingChanged() |
Aktualisiert und korrigiert die Ebene für diesen Schalter. |
OnValueChanged() |
Legt die SwitchSetting-Eigenschaft auf eine ganzzahlige Entsprechung der Value-Eigenschaft fest. |
OnValueChanged() |
Wird aufgerufen, wenn die Value-Eigenschaft geändert wird. (Geerbt von Switch) |
Refresh() |
Aktualisiert die Konfigurationsdaten für die Ablaufverfolgung. (Geerbt von Switch) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |