TraceSwitch Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет многоуровневый переключатель для управления выводом трассировки и отладки без повторной компиляции кода.
public ref class TraceSwitch : System::Diagnostics::Switch
public class TraceSwitch : System.Diagnostics.Switch
type TraceSwitch = class
inherit Switch
Public Class TraceSwitch
Inherits Switch
- Наследование
Примеры
В следующем примере кода создается новый TraceSwitch объект и используется параметр для определения того, следует ли выводить сообщения об ошибках. Параметр создается на уровне класса. MyMethod
записывает первое сообщение об ошибке, Level если свойство имеет значение TraceLevel.Error или выше. Однако не записывает второе сообщение об ошибкеLevel, MyMethod
если меньше 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
Комментарии
Для фильтрации сообщений на основе их важности можно использовать переключатель трассировки. Класс TraceSwitch предоставляет TraceErrorсвойства , TraceWarning, TraceInfoи TraceVerbose для проверки уровня коммутатора. Свойство Level получает или задает значение параметра TraceLevel.
Вы можете создать в коде TraceSwitch и задать уровень непосредственно для инструментирования определенного раздела кода.
Только в платформа .NET Framework приложениях можно также задать уровень TraceSwitch с помощью файла конфигурации приложения, а затем использовать настроенный TraceSwitch уровень в приложении. В файле конфигурации приложения можно добавить или удалить коммутатор, задать его значение или очистить все параметры, ранее заданные приложением. Файл конфигурации должен быть отформатирован, как показано в следующем примере:
<configuration>
<system.diagnostics>
<switches>
<add name="mySwitch" value="1" />
</switches>
</system.diagnostics>
</configuration>
В этом разделе конфигурации определяется TraceSwitch со значением mySwitch
DisplayName , а Level для — значение 1, соответствующее значению TraceLevel.Errorперечисления .
Примечание
Можно также использовать текст, чтобы указать значение параметра. Например, true
для BooleanSwitch, или текст, представляющий значение перечисления, например Error
для TraceSwitch. Строка <add name="mySwitch" value="Error" />
эквивалентна <add name="mySwitch" value="1" />
.
В приложении можно использовать настроенный уровень коммутатора, создав TraceSwitch с тем же именем, как показано в следующем примере:
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
В приложениях Level .NET Core и .NET 5+ для нового параметра по умолчанию используется значение TraceLevel.Off.
В платформа .NET Framework приложениях свойство switch Level по умолчанию имеет значение, указанное в файле конфигурации. Если конструктор не TraceSwitch может найти начальные параметры коммутатора в файле конфигурации, Level для нового параметра по умолчанию используется значение TraceLevel.Off.
Для использования коммутатора необходимо включить трассировку или отладку. Следующий синтаксис зависит от компилятора. Если вы используете компиляторы, отличные от C# или Visual Basic, обратитесь к документации по компилятору.
Чтобы включить отладку
/d:DEBUG
в C#, добавьте флаг в командную строку компилятора при компиляции кода или в#define DEBUG
начало файла. В Visual Basic добавьте/d:DEBUG=True
флаг в командную строку компилятора.Чтобы включить трассировку в C#, добавьте
/d:TRACE
флаг в командную строку компилятора при компиляции кода или в#define TRACE
начало файла. В Visual Basic добавьте/d:TRACE=True
флаг в командную строку компилятора.
Примечание
Эти параметры компилятора отладки и трассировки не требуются при использовании TraceSwitch класса в изоляции. Они требуются только в сочетании с Trace условно скомпилированными методами или Debug .
Дополнительные сведения об инструментировании приложения см. в разделе Debug и Trace. Дополнительные сведения о настройке и использовании параметров трассировки см. в разделе Параметры трассировки.
Примечание
Чтобы повысить производительность, можно создавать TraceSwitch члены static
в классе.
Конструкторы
TraceSwitch(String, String) |
Инициализирует новый экземпляр класса TraceSwitch, используя указанные отображаемое имя и описание. |
TraceSwitch(String, String, String) |
Инициализирует новый экземпляр класса TraceSwitch, используя указанные отображаемое имя, описание и значение по умолчанию переключателя. |
Свойства
Attributes |
Получает настраиваемые атрибуты переключателя, определенные в файле конфигурации приложения. (Унаследовано от Switch) |
DefaultValue |
Возвращает значение по умолчанию, назначенное в конструкторе . (Унаследовано от Switch) |
Description |
Получает описание переключателя. (Унаследовано от Switch) |
DisplayName |
Получает имя, идентифицирующее переключатель. (Унаследовано от Switch) |
Level |
Получает или задает уровень трассировки, которым определяются сообщения, активируемые переключателем. |
SwitchSetting |
Получает или задает текущее положение данного переключателя. (Унаследовано от Switch) |
TraceError |
Получает значение, указывающее, активирует ли переключатель сообщения обработки ошибок. |
TraceInfo |
Получает значение, указывающее, активирует ли переключатель информационные сообщения. |
TraceVerbose |
Получает значение, указывающее, активирует ли переключатель все сообщения. |
TraceWarning |
Получает значение, указывающее, активирует ли переключатель предупреждающие сообщения. |
Value |
Получает или задает значение переключателя. (Унаследовано от Switch) |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetSupportedAttributes() |
Возвращает настраиваемые атрибуты, поддерживаемые переключателем. (Унаследовано от Switch) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
OnSwitchSettingChanged() |
Обновляет и исправляет уровень для данного переключателя. |
OnValueChanged() |
Присваивает свойству SwitchSetting целочисленный эквивалент свойства Value. |
OnValueChanged() |
Вызывается при изменении свойства Value. (Унаследовано от Switch) |
Refresh() |
Обновляет данные конфигурации трассировки. (Унаследовано от Switch) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |