Практическое руководство. Создание и инициализация прослушивателей трассировки
Классы System.Diagnostics.Debug и System.Diagnostics.Trace отправляют сообщения объектам, называемым прослушивателями, которые получают и обрабатывают эти сообщения. Один из таких прослушивателей, System.Diagnostics.DefaultTraceListener, автоматически создается и инициализируется при включении трассировки или отладки. Для передачи выходных данных Trace или Debug каким-либо дополнительным источникам необходимо создать и инициализировать дополнительные прослушиватели трассировки.
Созданные прослушиватели должны соответствовать требованиям приложения пользователя. Например, если требуется текстовая запись всего вывода трассировки, создайте прослушиватель TextWriterTraceListener, записывающий при включении весь вывод в новый текстовый файл. С другой стороны, если требуется просмотр вывода только во время выполнения приложения, создайте прослушиватель ConsoleTraceListener, направляющий весь вывод в окно консоли. Прослушиватель EventLogTraceListener может направлять вывод трассировки в журнал событий. Дополнительные сведения см. в разделе Прослушиватели трассировки.
Прослушиватели трассировки можно создавать в файле конфигурации приложения или в коде. Рекомендуется использовать файлы конфигурации приложения, так как они позволяют добавлять, изменять или удалять прослушиватели трассировки без внесения изменений в код.
Создание и использование прослушивателя с помощью файла конфигурации
Объявите прослушиватель трассировки в файле конфигурации приложения. Если для создаваемого прослушивателя требуются другие объекты, объявите их. В следующем примере показано создание прослушивателя с именем 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>
Для записи сообщения в прослушиватели трассировки используйте в коде класс 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();
См. также
Задачи
Практическое руководство. Код трассировки в приложении
Практическое руководство. Добавление операторов трассировки в код приложения