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 значение или более поздней версии. Однако не записывает второе сообщение об ошибке, MyMethod если значение Level меньше TraceLevel.Verbose.
//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свойства TraceWarningTraceInfoи TraceVerbose свойства для тестирования уровня коммутатора. Свойство Level получает или задает параметр.TraceLevel
Вы можете создать TraceSwitch код и задать уровень непосредственно для инструментирования определенного раздела кода.
В приложениях .NET Framework можно также задать уровень TraceSwitch файла конфигурации приложения, а затем использовать настроенный TraceSwitch уровень в приложении. В файле конфигурации приложения можно добавить или удалить коммутатор, задать значение коммутатора или очистить все параметры, заданные ранее приложением. Файл конфигурации должен быть отформатирован следующим образом:
<configuration>
<system.diagnostics>
<switches>
<add name="mySwitch" value="1" />
</switches>
</system.diagnostics>
</configuration>
Этот раздел конфигурации определяет TraceSwitch значение с набором DisplayNamemySwitchи Level значение 1, соответствующее значению TraceLevel.Errorперечисления.
Замечание
Можно также использовать текст для указания значения переключателя. Например, true для текста BooleanSwitch, представляющего значение перечисления, например Error для объекта TraceSwitch. Строка <add name="mySwitch" value="Error" /> эквивалентна <add name="mySwitch" value="1" />.
В приложении можно использовать настроенный уровень коммутатора, создав TraceSwitch имя с таким же именем, как показано в следующем примере:
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, обратитесь к документации для компилятора.
Чтобы включить отладку в C#, добавьте
/d:DEBUGфлаг в командную строку компилятора при компиляции кода или добавьте#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, String) |
Инициализирует новый экземпляр TraceSwitch класса, используя указанное отображаемое имя, описание и значение по умолчанию для коммутатора. |
| TraceSwitch(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 свойства. |
| Refresh() |
Обновляет данные конфигурации трассировки. (Унаследовано от Switch) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |