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


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

Для трассировки чаще всего используются методы записи вывода в прослушиватели: Write, WriteIf, WriteLine, WriteLineIf, Assert и Fail. Эти методы можно разделить на две категории: Write, WriteLine и Fail выдают результат, не зависящий от условий, тогда как WriteIf, WriteLineIf и Assert проверяют логическое условие Boolean и, в зависимости от значения этого условия, либо выполняют запись, либо нет. Методы WriteIf и WriteLineIf выдают выходные данные, если условие имеет значение true, а для метода Assert требуется значение false.

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

Запись полной строки

  • Необходимо вызвать метод WriteLine или WriteLineIf.

    В конце сообщения, возвращаемого этим методом, добавляется возврат каретки, поэтому следующее сообщение, возвращаемое методами Write, WriteIf, WriteLine или WriteLineIf, будет начинаться со следующей строки:

    Dim errorFlag As Boolean = False
    Trace.WriteLine("Error in AppendData procedure.")
    Trace.WriteLineIf(errorFlag, "Error in AppendData procedure.") 
    
    bool errorFlag = false;
    System.Diagnostics.Trace.WriteLine ("Error in AppendData procedure.");
    System.Diagnostics.Trace.WriteLineIf(errorFlag, 
       "Error in AppendData procedure.");
    

Запись части строки

  • Необходимо вызвать метод Write или WriteIf.

    Следующее сообщение, возвращаемое операторами Write, WriteIf, WriteLine или WriteLineIf, будет начинаться с той же строки, что и сообщение, выдаваемое операторами Write или WriteIf:

    Dim errorFlag As Boolean = False
    Trace.WriteIf(errorFlag, "Error in AppendData procedure.")
    Debug.WriteIf(errorFlag, "Transaction abandoned.")
    Trace.Write("Invalid value for data request")
    
    bool errorFlag = false;
    System.Diagnostics.Trace.WriteIf(errorFlag, 
       "Error in AppendData procedure.");
    System.Diagnostics.Debug.WriteIf(errorFlag, "Transaction abandoned.");
    Trace.Write("Invalid value for data request");
    

Проверка на предмет существования определенных условий до или после выполнения метода

  • Вызовите метод Assert.

    Dim I As Integer = 4
    Trace.Assert(I = 5, "I is not equal to 5.")
    
    int I = 4;
    System.Diagnostics.Trace.Assert(I == 5, "I is not equal to 5.");
    
    ПримечаниеПримечание

    Метод Assert может использоваться как для трассировки, так и для отладки.В данном примере для всех прослушивателей в коллекции Listeners выводится стек вызовов.Дополнительные сведения см. в разделах Утверждения в управляемом коде и Debug.Assert.

См. также

Задачи

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

Ссылки

Debug.WriteIf

Debug.WriteLineIf

Trace.WriteIf

Trace.WriteLineIf

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

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

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

Прослушиватели трассировки

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

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