TraceSwitch TraceSwitch TraceSwitch TraceSwitch Class

Definition

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.Provides a multilevel switch to control tracing and debug output without recompiling your code.

public ref class TraceSwitch : System::Diagnostics::Switch
public class TraceSwitch : System.Diagnostics.Switch
type TraceSwitch = class
    inherit Switch
Public Class TraceSwitch
Inherits Switch
Vererbung
TraceSwitchTraceSwitchTraceSwitchTraceSwitch

Beispiele

Im folgenden Codebeispiel wird ein neuer TraceSwitch erstellt und der-Schalter verwendet, um zu bestimmen, ob Fehlermeldungen gedruckt werden sollen.The following code example creates a new TraceSwitch and uses the switch to determine whether to print error messages. Der Schalter wird auf Klassenebene erstellt.The switch is created at the class level. MyMethodschreibt die erste Fehlermeldung, wenn Level die-Eigenschaft auf TraceLevel.Error oder höher festgelegt ist.MyMethod writes the first error message if the Level property is set to TraceLevel.Error or higher. Schreibt jedoch MyMethod nicht die zweite Fehlermeldung, Level wenn kleiner als TraceLevel.Verboseist.However, MyMethod does not write the second error message if the Level is less than TraceLevel.Verbose.

   // 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 Ablauf Verfolgungs Schalter verwenden, um Nachrichten basierend auf ihrer Wichtigkeit herauszufiltern.You can use a trace switch to filter out messages based on their importance. Die TraceSwitch -Klasse stellt TraceErrordie TraceWarningEigenschaften TraceInfo,, TraceVerbose und bereit, um die Ebene des Schalters zu testen.The TraceSwitch class provides the TraceError, TraceWarning, TraceInfo, and TraceVerbose properties to test the level of the switch. Die Level -TraceLevelEigenschaft ruft die des Schalters ab oder legt Sie fest.The Level property gets or sets the switch's TraceLevel.

Sie können die Ebene eines TraceSwitch über die Anwendungs Konfigurationsdatei festlegen und dann die konfigurierte TraceSwitch Ebene in der Anwendung verwenden.You can set the level of a TraceSwitch through the application configuration file and then use the configured TraceSwitch level in your application. Alternativ können Sie einen TraceSwitch in Ihrem Code erstellen und die Ebene direkt festlegen, um einen bestimmten Code Abschnitt zu instrumentieren.Alternately, you can create a TraceSwitch in your code and set the level directly to instrument a specific section of code.

Um einen TraceSwitchzu konfigurieren, bearbeiten Sie die Konfigurationsdatei für die Anwendung.To configure a TraceSwitch, edit the configuration file for your application. In dieser Datei können Sie einen Schalter hinzufügen oder entfernen, den Wert eines Schalters festlegen oder alle Switches löschen, die zuvor von der Anwendung festgelegt wurden.In this file, you can add or remove a switch, set a switch's value, or clear all the switches previously set by the application. Die Konfigurationsdatei sollte wie im folgenden Beispiel formatiert sein:The configuration file should be formatted like the following example:

<configuration>  
  <system.diagnostics>  
    <switches>  
      <add name="mySwitch" value="1" />  
    </switches>  
  </system.diagnostics>  
</configuration>  

Dieser Konfigurations Abschnitt definiert eine TraceSwitch , bei DisplayName der auf mySwitch Level festgelegt ist und auf 1 festgelegt ist, was dem-Enumerationswert TraceLevel.Errorentspricht.This configuration section defines a TraceSwitch with the DisplayName set to mySwitch, and the Level set to 1, which corresponds to the enumeration value TraceLevel.Error.

Hinweis

In .NET Framework 2.0 können Sie Text verwenden, um den Wert eines Schalters anzugeben.In the .NET Framework version 2.0, you can use text to specify the value for a switch. Beispielsweise true für einen BooleanSwitch oder den Text, der einen Enumerationswert darstellt, Error z. TraceSwitchb. für einen.For example, true for a BooleanSwitch or the text representing an enumeration value, such as Error for a TraceSwitch. Die Zeile <add name="mySwitch" value="Error" /> ist gleichbedeutend mit <add name="mySwitch" value="1" />.The line <add name="mySwitch" value="Error" /> is equivalent to <add name="mySwitch" value="1" />.

In Ihrer Anwendung können Sie die konfigurierte switchebene verwenden, indem Sie TraceSwitch eine mit demselben Namen erstellen, wie im folgenden Beispiel gezeigt:In your application, you can use the configured switch level by creating a TraceSwitch with the same name, as shown in the following example:

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

Standardmäßig wird die Switch Level -Eigenschaft mit dem in der Konfigurationsdatei angegebenen Wert festgelegt.By default, the switch Level property is set using the value specified in the configuration file. Wenn der TraceSwitch Konstruktor keine anfänglichen Switcheinstellungen in der Konfigurationsdatei finden kann, Level wird für den neuen Switch Standard TraceLevel.Offmäßig verwendet.If the TraceSwitch constructor cannot find initial switch settings in the configuration file, the Level of the new switch defaults to TraceLevel.Off.

Sie müssen die Ablauf Verfolgung oder das Debuggen zur Verwendung eines Schalters aktivierenYou must enable tracing or debugging to use a switch. Die folgende Syntax ist compilerspezifisch.The following syntax is compiler specific. Wenn Sie andere Compiler als C# oder Visual Basic verwenden, finden Sie in der Dokumentation Ihres Compiler weitere Informationen.If you use compilers other than C# or Visual Basic, refer to the documentation for your compiler.

  • Um das Debuggen in C#zu /d:DEBUG aktivieren, fügen Sie das-Flag zur Compilerbefehlszeile hinzu #define DEBUG , wenn Sie den Code kompilieren, oder fügen Sie am Anfang der Datei hinzu.To enable debugging in C#, add the /d:DEBUG flag to the compiler command line when you compile your code, or add #define DEBUG to the top of your file. Fügen Sie in Visual Basic der /d:DEBUG=True Compilerbefehlszeile das-Flag hinzu.In Visual Basic, add the /d:DEBUG=True flag to the compiler command line.

  • Um die Ablauf Verfolgung C#in zu aktivieren /d:TRACE , fügen Sie das Flag der Compilerbefehlszeile hinzu, wenn #define TRACE Sie den Code kompilieren, oder fügen Sie am Anfang der Datei hinzu.To enable tracing in C#, add the /d:TRACE flag to the compiler command line when you compile your code, or add #define TRACE to the top of your file. Fügen Sie in Visual Basic der /d:TRACE=True Compilerbefehlszeile das-Flag hinzu.In Visual Basic, add the /d:TRACE=True flag to the compiler command line.

Hinweis

Diese Debug-und Trace-Compilerschalter sind nicht erforderlich TraceSwitch , wenn die-Klasse isoliert verwendet wird.These debug and trace compiler switches are not required when using the TraceSwitch class in isolation. Sie sind nur in Verbindung mit Trace der-Methode oder Debug der-Methode erforderlich, die bedingt kompiliert werden.They are only required in conjunction with Trace or Debug methods that are conditionally compiled.

Weitere Informationen zum Instrumentieren Ihrer Anwendung finden Debug Sie unter und. TraceFor more information on instrumenting your application, see Debug and Trace. Weitere Informationen zum Konfigurieren und Verwenden von Ablauf Verfolgungs Schaltern finden Sie unter Ablauf Verfolgungs Schalter.For more information about configuring and using trace switches, see Trace Switches.

Hinweis

Um die Leistung zu verbessern, TraceSwitch können static Sie Member in der Klasse erstellen.To improve performance, you can make TraceSwitch members static in your class.

Konstruktoren

TraceSwitch(String, String) TraceSwitch(String, String) TraceSwitch(String, String) TraceSwitch(String, String)

Initialisiert eine neue Instanz der TraceSwitch-Klasse unter Verwendung des angegebenen Anzeigenamens und der angegebenen Beschreibung.Initializes a new instance of the TraceSwitch class, using the specified display name and description.

TraceSwitch(String, String, String) TraceSwitch(String, String, String) TraceSwitch(String, String, String) 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.Initializes a new instance of the TraceSwitch class, using the specified display name, description, and default value for the switch.

Eigenschaften

Attributes Attributes Attributes Attributes

Ruft die benutzerdefinierten Schalterattribute ab, die in der Anwendungskonfigurationsdatei definiert sind.Gets the custom switch attributes defined in the application configuration file.

(Inherited from Switch)
Description Description Description Description

Ruft eine Beschreibung des Schalters ab.Gets a description of the switch.

(Inherited from Switch)
DisplayName DisplayName DisplayName DisplayName

Ruft einen Namen zum Bezeichnen des Schalters ab.Gets a name used to identify the switch.

(Inherited from Switch)
Level Level Level Level

Ruft die Ablaufverfolgungsebene ab, die die Meldungen bestimmt, die der Schalter zulässt, oder legt diese fest.Gets or sets the trace level that determines the messages the switch allows.

SwitchSetting SwitchSetting SwitchSetting SwitchSetting

Ruft die aktuelle Einstellung des Schalters ab oder legt diese fest.Gets or sets the current setting for this switch.

(Inherited from Switch)
TraceError TraceError TraceError TraceError

Ruft einen Wert ab, der angibt, ob der Schalter Meldungen zur Fehlerbehandlung zulässt.Gets a value indicating whether the switch allows error-handling messages.

TraceInfo TraceInfo TraceInfo TraceInfo

Ruft einen Wert ab, der angibt, ob der Schalter Informationsmeldungen zulässt.Gets a value indicating whether the switch allows informational messages.

TraceVerbose TraceVerbose TraceVerbose TraceVerbose

Ruft einen Wert ab, der angibt, ob der Schalter alle Meldungen zulässt.Gets a value indicating whether the switch allows all messages.

TraceWarning TraceWarning TraceWarning TraceWarning

Ruft einen Wert ab, der angibt, ob der Schalter Warnmeldungen zulässt.Gets a value indicating whether the switch allows warning messages.

Value Value Value Value

Ruft den Wert des Schalters ab oder legt diesen fest.Gets or sets the value of the switch.

(Inherited from Switch)

Methoden

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetSupportedAttributes() GetSupportedAttributes() GetSupportedAttributes() GetSupportedAttributes()

Ruft die benutzerdefinierten Attribute ab, die vom Schalter unterstützt werden.Gets the custom attributes supported by the switch.

(Inherited from Switch)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
OnSwitchSettingChanged() OnSwitchSettingChanged() OnSwitchSettingChanged() OnSwitchSettingChanged()

Aktualisiert und korrigiert die Ebene für diesen Schalter.Updates and corrects the level for this switch.

OnValueChanged() OnValueChanged() OnValueChanged() OnValueChanged()

Legt die SwitchSetting-Eigenschaft auf eine ganzzahlige Entsprechung der Value-Eigenschaft fest.Sets the SwitchSetting property to the integer equivalent of the Value property.

ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Gilt für:

Siehe auch