Трассировка и отладка в .NET


Использование переключателей для активизации диагностики



Использование переключателей для активизации диагностики

Переключатели позволяют проводить мелкоструктурное управление выводом диагностики. Можно использовать класс BooleanSwitch для включения и отключения вывода, основываясь на его свойстве Enabled (Разблокировано).
Класс TraceSwitch предоставляет пять иерархических уровней управления для своего свойства Level (Уровень): TraceLevel: :Error (Ошибка), TraceLevel: -.Warning (Предупреждение), TraceLevel: :Info (Информация), TraceLevel: :Verbose (Подробно) и TraceLevel: :0f f (Выключено). Эти значения входят в состав перечисления TraceLevel. Установка одного из уровней подразумевает, что все более высокие уровни установлены. Например, если установлен уровень в TraceLevel: :Warning (Предупреждение), то считается, что активизированы уровни TraceLevel: :Error (Ошибка) и TraceLevel: :Warning (Предупреждение).

DebugBooleanSwitch->Enabled = true; // истина Debug::WriteLinelf(
DebugBooleanSwitch->Enabled,
"Debug Boolean Switch enabled!");
TraceLevelSwitch->Level = TraceLevel::Warning; // Уровень = Предупреждение
Trace::WriteLinelf(
TraceLevelSwitch->TraceError, "TraceError!"); Trace::WriteLinelf(
TraceLevelSwitch->TraceWarning, "TraceWarning!"); Trace::WriteLinelf(
TraceLevelSwitch->TraceInfo, "InfoMessage!"); Trace::WriteLinelf(
TraceLevelSwitch->TraceVerbose, "VerboseMessage!");

Конструкторы для этих переключателей принимают два параметра. Первый из них — это имя переключателя, а второй — текстовое описание переключателя. Классы BooleanSwitch и TraceSwitch являются производными от абстрактного класса Switch (Переключатель). Наследованием из класса Switch (Переключатель) можно создать и собственные классы переключателей. Заметим, что свойство Enabled (Разблокировано) класса BooleanSwitch и свойство Level (Уровень) класса TraceSwitch не являются членами класса Switch (Переключатель).




Содержание раздела