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