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


Практическое руководство. Создание и инициализация прослушивателей трассировки

Классы System.Diagnostics.Debug и System.Diagnostics.Trace отправляют сообщения объектам, называемым прослушивателями, которые получают и обрабатывают эти сообщения. Один из таких прослушивателей, System.Diagnostics.DefaultTraceListener, автоматически создается и инициализируется при включении трассировки или отладки. Для передачи выходных данных Trace или Debug каким-либо дополнительным источникам необходимо создать и инициализировать дополнительные прослушиватели трассировки.

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

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

Создание и использование прослушивателя с помощью файла конфигурации

  1. Объявите прослушиватель трассировки в файле конфигурации приложения. Если для создаваемого прослушивателя требуются другие объекты, объявите их. В следующем примере показано создание прослушивателя с именем myListener, который записывает данные в текстовый файл TextWriterOutput.log.

    <configuration>
      <system.diagnostics>
        <trace autoflush="false" indentsize="4">
          <listeners>
            <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TextWriterOutput.log" />
            <remove name="Default" />
          </listeners>
        </trace>
      </system.diagnostics>
    </configuration>
    
  2. Для записи сообщения в прослушиватели трассировки используйте в коде класс Trace.

    Trace.TraceInformation("Test message.")
    ' You must close or flush the trace to empty the output buffer.
    Trace.Flush()
    
    Trace.TraceInformation("Test message.");
    // You must close or flush the trace to empty the output buffer.
    Trace.Flush();
    

Создание и использование прослушивателя трассировки в коде

  • Добавьте прослушиватель трассировки в коллекцию Listeners и отправьте данные трассировки прослушивателям.

    Trace.Listeners.Add(New TextWriterTraceListener("TextWriterOutput.log", "myListener"))
    Trace.TraceInformation("Test message.")
    ' You must close or flush the trace to empty the output buffer.
    Trace.Flush()
    
    Trace.Listeners.Add(new TextWriterTraceListener("TextWriterOutput.log", "myListener"));
    Trace.TraceInformation("Test message.");
    // You must close or flush the trace to empty the output buffer.
    Trace.Flush();
    

    - или -

  • Чтобы прослушиватель не получал вывод трассировки, не следует добавлять его в коллекцию Listeners. Допускается выдача вывода через прослушиватель без добавления его в коллекцию Listeners путем вызова собственных методов вывода прослушивателя. В следующем примере показан способ записи строки в прослушиватель, который не входит в коллекцию Listeners:

    Dim myListener As New TextWriterTraceListener("TextWriterOutput.log", "myListener")
    myListener.WriteLine("Test message.")
    ' You must close or flush the trace listener to empty the output buffer.
    myListener.Flush()
    
    TextWriterTraceListener myListener = new TextWriterTraceListener("TextWriterOutput.log", "myListener");
    myListener.WriteLine("Test message.");
    // You must close or flush the trace listener to empty the output buffer.
    myListener.Flush();
    

См. также

Задачи

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

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

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

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

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

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

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