Поделиться через


Практическое руководство. Конфигурация переключателей трассировки

После создания распределенного приложения сохраняется возможность включения или отключения вывода трассировки путем настройки в приложении переключателей трассировки. Настройка переключателя означает изменение его значения из внешнего источника после его инициализации. Для изменения значений объектов переключателей используется файл конфигурации. Настройка переключателя трассировки выполняется для его включения и отключения, задания его уровня или определения количества и типа сообщений, передаваемых слушателям.

Для настройки переключателей используется файл CONFIG. Для веб-приложения используется файл Web.config, связанный с проектом. В приложении Windows данному файлу присваивается имя (имя приложения).exe.config. В развернутом приложении данный файл должен находиться в той же папке, что и исполняемое приложение.

Когда приложение выполняет код, который впервые создает экземпляр переключателя, выполняется проверка сведений об уровне трассировки для указанного переключателя в файле конфигурации. Система трассировки проверяет файл конфигурации только один раз для каждого отдельного переключателя — при первом создании переключателя в приложении.

В развертываемом приложении активация кода трассировки выполняется с помощью повторной настройки объектов переключателей, когда приложение не запущено. Как правило, это подразумевает отключение и включение объектов переключателей или замену уровней трассировки и повторный запуск приложения.

При создании экземпляра переключателя выполняется также его инициализация путем задания двух аргументов: аргумента displayNamе и аргумента description. Аргумент displayName в конструкторе задает свойство Switch.DisplayName экземпляра класса Switch. Аргумент displayName является именем, которое используется для настройки переключателя в файле CONFIG, а аргумент description должен возвращать краткое описание переключателя, а также сообщений, которыми он управляет.

Помимо указания имени переключателя, который необходимо настроить, нужно также указать значение для переключателя. Это значение является целым числом. Для BooleanSwitch, значение, равное 0, соответствует Off, а любое ненулевое значение соответствует On. Для TraceSwitch значения, равные 0,1,2,3 и 4, соответствуют Off, Error, Warning, Info и Verbose соответственно. Все числа больше 4 интерпретируются как Verbose, числа меньше 0 — как Off.

ПримечаниеПримечание

В .NET Framework версии 2.0 для указания значения переключателя можно использовать текст.Например, можно указать значение true для BooleanSwitch или использовать текст, представляющий значение перечисления, такое как Error для TraceSwitch.Строка <add name="myTraceSwitch" value="Error" /> эквивалентна <add name="myTraceSwitch" value="1" />.

Чтобы обеспечить конечным пользователям возможность настройки переключателей трассировки приложения, следует предоставить подробную документацию по переключателям в приложении. Необходимо подробно описать, чем управляет каждый переключатель, и способ его включения и отключения. Необходимо также предоставить конечному пользователю файл CONFIG с соответствующей справкой в комментариях.

Создание и настройка переключателей трассировки

  1. Создание собственных переключателей в коде. Дополнительные сведения см. в разделе Создание и инициализация переключателей трассировки.

  2. Если в проекте отсутствует файл конфигурации (app.config или Web.config), выберите команду Добавить новый элемент в меню Проект.

    • Visual Basic: в диалоговом окне Добавление нового элемента выберите Файл конфигурации приложения.

      Будет создан и открыт файл конфигурации приложения. Он представляет собой документ XML с корневым элементом <configuration>.

    • Visual C#: в поле Добавить новый элемент выберите Файл XML. Присвойте данному файлу имя app.config. В редакторе XML после объявления XML добавьте следующий XML-код:

      <configuration>
      </configuration>
      

      При компиляции проекта файл app.config копируется в выходную папку проекта, и ему присваивается имя applicationname.exe.config.

  3. После тега <configuration>, но перед тегом </configuration> следует добавить соответствующий XML-код для настройки переключателей. В следующих примерах показан BooleanSwitch со свойством DisplayName для DataMessageSwitch и TraceSwitch со свойством DisplayName для TraceLevelSwitch.

    <system.diagnostics>
       <switches>
          <add name="DataMessagesSwitch" value="0" />
          <add name="TraceLevelSwitch" value="0" />
       </switches>
    </system.diagnostics>
    

    В данной конфигурации оба переключателя отключены.

  4. Чтобы включить BooleanSwitch, например DataMessagesSwitch, показанный в предыдущем примере, следует изменить Value на любое целое число, отличное от 0.

  5. Чтобы включить TraceSwitch, например TraceLevelSwitch, показанный в предыдущем примере, следует изменить Value на соответствующий параметр уровня (от 1 до 4).

  6. Добавьте комментарии в файл CONFIG, чтобы конечные пользователи четко понимали, какие значения следует изменить для соответствующей настройки переключателей.

    В следующем примере показан образец конечного кода, включая комментарии:

    <system.diagnostics>
       <switches>
          <!-- This switch controls data messages. In order to receive data 
             trace messages, change value="0" to value="1" -->
          <add name="DataMessagesSwitch" value="0" />
          <!-- This switch controls general messages. In order to 
             receive general trace messages change the value to the 
             appropriate level. "1" gives error messages, "2" gives errors 
             and warnings, "3" gives more detailed error information, and 
             "4" gives verbose trace information -->
          <add name="TraceLevelSwitch" value="0" />
       </switches>
    </system.diagnostics>
    

См. также

Задачи

Практическое руководство. Добавление операторов трассировки в код приложения

Ссылки

Схема параметров трассировки и отладки

Основные понятия

Введение. Подготовка к инструментированию и трассировка.

Переключатели трассировки

Другие ресурсы

Трассировка и оборудование приложений