Практическое руководство. Добавление операторов трассировки в код приложения
Для трассировки чаще всего используются методы записи вывода в прослушиватели: 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.
См. также
Задачи
Практическое руководство. Конфигурация переключателей трассировки
Ссылки
Основные понятия
Введение. Подготовка к инструментированию и трассировка.