Показаны сообщения с ярлыком Trace. Показать все сообщения
Показаны сообщения с ярлыком Trace. Показать все сообщения

Трассировка кода

суббота, 9 мая 2009 г.,

Трассировка (журналирование / аудит) - это вывод информации о текущем состоянии программы.

Для реализации трассировки в классе надо создать объект типа TraceSource, а для вывода информации использовать метод, например, TraceInformatio:
public class MyClass
{
    private readonly static TraceSource T;
    static MyClass()
    {
        T = new TraceSource("MyClass", SourceLevels.All);
    }

    public void Method()
    {
        T.TraceInformation("Method start");
        // ...
        T.TraceInformation("Method done");
    }
}
В результате запуска debugger'а в окне Immadiate Window или Output Window (зависит от настроек) появятся следующие строки:
MyClass Information: 0 : Method start
MyClass Information: 0 : Method done

Если отладочную информацию требуется вывести в файл trace.log, то в конструкторе формы должен быть следующий код:
Trace.Listeners.Clear();    // удалить DefaultTraceListener
Trace.Listeners.Add(new TextWriterTraceListener("trace.log"));

MyClass mc = new MyClass();
mc.Method();

Для создания своего получателя трассировочной информации надо наследовать класс TraceListener и переопределить два метода: Write и WriteLine.

Управлять выводом трассировочной информацией можно посредством файла конфигурации приложения (config-файла). Подробнее см. здесь.

Вывод трассировочной информации

понедельник, 16 марта 2009 г.,

В Visual Studio трассировочная информация - значение, переданное в метод System.Diagnostics.Trace.WriteLine - обычно выводится в Output Window (открывается в ответ на нажатие Ctrl+W и O).
Чтобы трассировочная информация выводилась в Immediate Window необходимо:
  1. в главном меню выбрать Tools - Options - Debugging - General
  2. включить Redirect all Output Window text to the Immediate Window
Immеdiate Window открывается в ответ на нажатие Ctrl+D и I. Также окно можно открыть если вызвать Command Window (Ctrl+W и A), набрать Debug.Immediate и нажать Enter.