TraceSwitch Класс

Определение

Предоставляет многоуровневый переключатель для управления выводом трассировки и отладки без повторной компиляции кода.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
Наследование
TraceSwitch

Примеры

В следующем примере кода создается новый TraceSwitch объект и используется параметр, чтобы определить, следует ли выводить сообщения об ошибках.The following code example creates a new TraceSwitch and uses the switch to determine whether to print error messages. Переключатель создается на уровне класса.The switch is created at the class level. MyMethodзаписывает первое сообщение об ошибке Level , если свойство имеет TraceLevel.Error значение или выше.MyMethod writes the first error message if the Level property is set to TraceLevel.Error or higher. Однако не записывает второе сообщение об ошибке, если Level значение меньше TraceLevel.Verbose. MyMethodHowever, 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

Комментарии

С помощью переключателя трассировки можно отфильтровать сообщения по важности.You can use a trace switch to filter out messages based on their importance. TraceSwitch Класс предоставляетсвойстваTraceWarning, ,TraceInfoи дляTraceVerbose проверки уровня переключателя. TraceErrorThe TraceSwitch class provides the TraceError, TraceWarning, TraceInfo, and TraceVerbose properties to test the level of the switch. Свойство получает или задает TraceLevelпараметр. LevelThe Level property gets or sets the switch's TraceLevel.

Уровень a TraceSwitch можно задать с помощью файла конфигурации приложения, а затем использовать настроенный TraceSwitch уровень в приложении.You can set the level of a TraceSwitch through the application configuration file and then use the configured TraceSwitch level in your application. Кроме того, можно создать TraceSwitch в коде и установить уровень непосредственно для инструментирования определенного раздела кода.Alternately, you can create a TraceSwitch in your code and set the level directly to instrument a specific section of code.

Чтобы настроить TraceSwitch, измените файл конфигурации для приложения.To configure a TraceSwitch, edit the configuration file for your application. В этом файле можно добавить или удалить переключатель, задать значение переключателя или очистить все параметры, ранее заданные приложением.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. Файл конфигурации следует отформатировать, как показано в следующем примере:The configuration file should be formatted like the following example:

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

Этот раздел TraceSwitch конфигурации определяет DisplayName с параметром, для mySwitchкоторого Level задано значение, и значение 1, соответствующее значению 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.

Примечание

В .NET Framework версии 2.0 для указания значения переключателя можно использовать текст.In the .NET Framework version 2.0, you can use text to specify the value for a switch. Например, true Error для или текста, представляющего значение перечисления, например для. TraceSwitch BooleanSwitchFor example, true for a BooleanSwitch or the text representing an enumeration value, such as Error for a TraceSwitch. Строка <add name="mySwitch" value="Error" /> эквивалентна <add name="mySwitch" value="1" />.The line <add name="mySwitch" value="Error" /> is equivalent to <add name="mySwitch" value="1" />.

В приложении можно использовать настроенный уровень переключателя, создав TraceSwitch с тем же именем, как показано в следующем примере: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

По умолчанию свойство Switch Level устанавливается с использованием значения, указанного в файле конфигурации.By default, the switch Level property is set using the value specified in the configuration file. Если конструктор не может найти начальные параметры коммутатора в файле конфигурации Level , по умолчанию для TraceLevel.Offнового параметра используется значение. TraceSwitchIf the TraceSwitch constructor cannot find initial switch settings in the configuration file, the Level of the new switch defaults to TraceLevel.Off.

Для использования переключателя необходимо включить трассировку или отладку.You must enable tracing or debugging to use a switch. Ниже приведен синтаксис, характерный для компилятора.The following syntax is compiler specific. Если вы используете компиляторы, отличные C# от или Visual Basic, обратитесь к документации по компилятору.If you use compilers other than C# or Visual Basic, refer to the documentation for your compiler.

  • Чтобы включить отладку C#в, добавьте /d:DEBUG флаг в командную строку компилятора при компиляции кода или добавьте #define DEBUG в начало файла.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. В Visual Basic добавьте /d:DEBUG=True флаг в командную строку компилятора.In Visual Basic, add the /d:DEBUG=True flag to the compiler command line.

  • Чтобы включить трассировку C#в, добавьте /d:TRACE флаг в командную строку компилятора при компиляции кода или добавьте #define TRACE в начало файла.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. В Visual Basic добавьте /d:TRACE=True флаг в командную строку компилятора.In Visual Basic, add the /d:TRACE=True flag to the compiler command line.

Примечание

Эти параметры компилятора отладки и трассировки не требуются при использовании TraceSwitch класса в режиме изоляции.These debug and trace compiler switches are not required when using the TraceSwitch class in isolation. Они необходимы только в сочетании с Trace методами или Debug , которые компилируются условно.They are only required in conjunction with Trace or Debug methods that are conditionally compiled.

Дополнительные сведения об инструментировании приложения см Debug . в статьях и. TraceFor more information on instrumenting your application, see Debug and Trace. Дополнительные сведения о настройке и использовании переключателей трассировки см. в разделе Параметры трассировки.For more information about configuring and using trace switches, see Trace Switches.

Примечание

Чтобы повысить производительность, можно сделать TraceSwitch члены static класса.To improve performance, you can make TraceSwitch members static in your class.

Конструкторы

TraceSwitch(String, String)

Инициализирует новый экземпляр класса TraceSwitch, используя указанные отображаемое имя и описание.Initializes a new instance of the TraceSwitch class, using the specified display name and description.

TraceSwitch(String, String, String)

Инициализирует новый экземпляр класса TraceSwitch, используя указанные отображаемое имя, описание и значение по умолчанию переключателя.Initializes a new instance of the TraceSwitch class, using the specified display name, description, and default value for the switch.

Свойства

Attributes

Получает настраиваемые атрибуты переключателя, определенные в файле конфигурации приложения.Gets the custom switch attributes defined in the application configuration file.

(Унаследовано от Switch)
Description

Получает описание переключателя.Gets a description of the switch.

(Унаследовано от Switch)
DisplayName

Получает имя, идентифицирующее переключатель.Gets a name used to identify the switch.

(Унаследовано от Switch)
Level

Получает или задает уровень трассировки, которым определяются сообщения, активируемые переключателем.Gets or sets the trace level that determines the messages the switch allows.

SwitchSetting

Получает или задает текущее положение данного переключателя.Gets or sets the current setting for this switch.

(Унаследовано от Switch)
TraceError

Получает значение, указывающее, активирует ли переключатель сообщения обработки ошибок.Gets a value indicating whether the switch allows error-handling messages.

TraceInfo

Получает значение, указывающее, активирует ли переключатель информационные сообщения.Gets a value indicating whether the switch allows informational messages.

TraceVerbose

Получает значение, указывающее, активирует ли переключатель все сообщения.Gets a value indicating whether the switch allows all messages.

TraceWarning

Получает значение, указывающее, активирует ли переключатель предупреждающие сообщения.Gets a value indicating whether the switch allows warning messages.

Value

Получает или задает значение переключателя.Gets or sets the value of the switch.

(Унаследовано от Switch)

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetSupportedAttributes()

Возвращает настраиваемые атрибуты, поддерживаемые переключателем.Gets the custom attributes supported by the switch.

(Унаследовано от Switch)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
OnSwitchSettingChanged()

Обновляет и исправляет уровень для данного переключателя.Updates and corrects the level for this switch.

OnValueChanged()

Присваивает свойству SwitchSetting целочисленный эквивалент свойства Value.Sets the SwitchSetting property to the integer equivalent of the Value property.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Применяется к

Дополнительно