TraceSwitch Klasa

Definicja

Udostępnia przełącznik wielopoziomowy umożliwiający sterowanie śledzeniem i debugowaniem danych wyjściowych bez konieczności ponownego kompilowania kodu.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
Dziedziczenie
TraceSwitch

Przykłady

Poniższy przykład kodu tworzy nowy TraceSwitch i używa przełącznika, aby określić, czy należy drukować komunikaty o błędach.The following code example creates a new TraceSwitch and uses the switch to determine whether to print error messages. Przełącznik jest tworzony na poziomie klasy.The switch is created at the class level. MyMethod Zapisuje pierwszy komunikat o błędzie, jeśli Level Właściwość jest ustawiona na TraceLevel.Error lub wyższą.MyMethod writes the first error message if the Level property is set to TraceLevel.Error or higher. Jednak program MyMethod nie zapisuje drugiego komunikatu o błędzie, jeśli Level jest mniejszy niż TraceLevel.Verbose .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

Uwagi

Możesz użyć przełącznika śledzenia, aby odfiltrować komunikaty na podstawie ich znaczenia.You can use a trace switch to filter out messages based on their importance. TraceSwitchKlasa zawiera TraceError TraceWarning właściwości,, TraceInfo i TraceVerbose do testowania poziomu przełącznika.The TraceSwitch class provides the TraceError, TraceWarning, TraceInfo, and TraceVerbose properties to test the level of the switch. LevelWłaściwość pobiera lub ustawia przełącznik TraceLevel .The Level property gets or sets the switch's TraceLevel.

Możesz ustawić poziom od a TraceSwitch za pomocą pliku konfiguracji aplikacji, a następnie użyć skonfigurowanego TraceSwitch poziomu w aplikacji.You can set the level of a TraceSwitch through the application configuration file and then use the configured TraceSwitch level in your application. Alternatywnie można utworzyć TraceSwitch w kodzie i ustawić poziom bezpośrednio, aby instrumentować określoną sekcję kodu.Alternately, you can create a TraceSwitch in your code and set the level directly to instrument a specific section of code.

Aby skonfigurować TraceSwitch program, należy edytować plik konfiguracji aplikacji.To configure a TraceSwitch, edit the configuration file for your application. W tym pliku można dodać lub usunąć przełącznik, ustawić wartość przełącznika lub wyczyścić wszystkie przełączniki wcześniej ustawione przez aplikację.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. Plik konfiguracji powinien być sformatowany w następujący sposób:The configuration file should be formatted like the following example:

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

Ta sekcja konfiguracji definiuje TraceSwitch z DisplayName ustawioną na mySwitch i Level ustawioną na wartość 1, która odpowiada wartości wyliczenia TraceLevel.Error .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.

Uwaga

W .NET Framework w wersji 2,0 można użyć tekstu, aby określić wartość dla przełącznika.In the .NET Framework version 2.0, you can use text to specify the value for a switch. Na przykład true dla BooleanSwitch lub tekst reprezentujący wartość wyliczenia, na przykład Error dla elementu TraceSwitch .For example, true for a BooleanSwitch or the text representing an enumeration value, such as Error for a TraceSwitch. Wiersz <add name="mySwitch" value="Error" /> jest odpowiednikiem <add name="mySwitch" value="1" /> .The line <add name="mySwitch" value="Error" /> is equivalent to <add name="mySwitch" value="1" />.

W aplikacji można użyć skonfigurowanego poziomu przełącznika, tworząc TraceSwitch z taką samą nazwą, jak pokazano w następującym przykładzie: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

Domyślnie Level Właściwość Switch jest ustawiana za pomocą wartości określonej w pliku konfiguracji.By default, the switch Level property is set using the value specified in the configuration file. Jeśli TraceSwitch Konstruktor nie może znaleźć ustawień przełączników początkowych w pliku konfiguracji, Level nowy przełącznik zostanie domyślnie włączony TraceLevel.Off .If the TraceSwitch constructor cannot find initial switch settings in the configuration file, the Level of the new switch defaults to TraceLevel.Off.

Musisz włączyć śledzenie lub debugowanie, aby użyć przełącznika.You must enable tracing or debugging to use a switch. Następująca składnia jest specyficzna dla kompilatora.The following syntax is compiler specific. Jeśli używasz kompilatorów innych niż C# lub Visual Basic, zapoznaj się z dokumentacją kompilatora.If you use compilers other than C# or Visual Basic, refer to the documentation for your compiler.

  • Aby włączyć debugowanie w języku C#, Dodaj /d:DEBUG flagę do wiersza polecenia kompilatora podczas kompilowania kodu lub Dodaj #define DEBUG do góry pliku.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. W Visual Basic Dodaj /d:DEBUG=True flagę do wiersza polecenia kompilatora.In Visual Basic, add the /d:DEBUG=True flag to the compiler command line.

  • Aby włączyć śledzenie w języku C#, Dodaj /d:TRACE flagę do wiersza polecenia kompilatora podczas kompilowania kodu lub Dodaj #define TRACE do góry pliku.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. W Visual Basic Dodaj /d:TRACE=True flagę do wiersza polecenia kompilatora.In Visual Basic, add the /d:TRACE=True flag to the compiler command line.

Uwaga

Te przełączniki kompilatora debugowania i śledzenia nie są wymagane w przypadku używania TraceSwitch klasy w izolacji.These debug and trace compiler switches are not required when using the TraceSwitch class in isolation. Są one wymagane tylko w połączeniu z Trace lub Debug metodami, które są kompilowane warunkowo.They are only required in conjunction with Trace or Debug methods that are conditionally compiled.

Aby uzyskać więcej informacji na temat Instrumentacji aplikacji, zobacz Debug i Trace .For more information on instrumenting your application, see Debug and Trace. Aby uzyskać więcej informacji o konfigurowaniu i używaniu przełączników śledzenia, zobacz przełączniki śledzenia.For more information about configuring and using trace switches, see Trace Switches.

Uwaga

Aby zwiększyć wydajność, można wprowadzać TraceSwitch elementy członkowskie static w klasie.To improve performance, you can make TraceSwitch members static in your class.

Konstruktory

TraceSwitch(String, String)

Inicjuje nowe wystąpienie TraceSwitch klasy, używając określonej nazwy wyświetlanej i opisu.Initializes a new instance of the TraceSwitch class, using the specified display name and description.

TraceSwitch(String, String, String)

Inicjuje nowe wystąpienie TraceSwitch klasy, używając określonej nazwy wyświetlanej, opisu i wartości domyślnej dla przełącznika.Initializes a new instance of the TraceSwitch class, using the specified display name, description, and default value for the switch.

Właściwości

Attributes

Pobiera atrybuty przełącznika niestandardowego zdefiniowane w pliku konfiguracyjnym aplikacji.Gets the custom switch attributes defined in the application configuration file.

(Odziedziczone po Switch)
Description

Pobiera opis przełącznika.Gets a description of the switch.

(Odziedziczone po Switch)
DisplayName

Pobiera nazwę używaną do identyfikowania przełącznika.Gets a name used to identify the switch.

(Odziedziczone po Switch)
Level

Pobiera lub ustawia poziom śledzenia określający komunikaty dozwolone przez przełącznik.Gets or sets the trace level that determines the messages the switch allows.

SwitchSetting

Pobiera lub ustawia bieżące ustawienie dla tego przełącznika.Gets or sets the current setting for this switch.

(Odziedziczone po Switch)
TraceError

Pobiera wartość wskazującą, czy przełącznik zezwala na komunikaty obsługujące błędy.Gets a value indicating whether the switch allows error-handling messages.

TraceInfo

Pobiera wartość wskazującą, czy przełącznik zezwala na komunikaty informacyjne.Gets a value indicating whether the switch allows informational messages.

TraceVerbose

Pobiera wartość wskazującą, czy przełącznik zezwala na wszystkie komunikaty.Gets a value indicating whether the switch allows all messages.

TraceWarning

Pobiera wartość wskazującą, czy przełącznik zezwala na komunikaty ostrzegawcze.Gets a value indicating whether the switch allows warning messages.

Value

Pobiera lub ustawia wartość przełącznika.Gets or sets the value of the switch.

(Odziedziczone po Switch)

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetSupportedAttributes()

Pobiera atrybuty niestandardowe obsługiwane przez przełącznik.Gets the custom attributes supported by the switch.

(Odziedziczone po Switch)
GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
OnSwitchSettingChanged()

Aktualizuje i koryguje poziom tego przełącznika.Updates and corrects the level for this switch.

OnValueChanged()

Ustawia SwitchSetting Właściwość na równoważną liczbę całkowitą Value właściwości.Sets the SwitchSetting property to the integer equivalent of the Value property.

OnValueChanged()

Wywoływana, gdy Value Właściwość zostanie zmieniona.Invoked when the Value property is changed.

(Odziedziczone po Switch)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Dotyczy

Zobacz też