Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Эта статья связана с .NET Framework. Он не применяется к более новым реализациям .NET, включая .NET 6 и более поздние версии.
При использовании трассировки, отладки и TraceSource, необходимо иметь механизм для сбора и записи отправленных сообщений. Сообщения трассировки получают прослушиватели. Цель слушателя заключается в сборе сообщений трассировки, их хранении и маршрутизации. Прослушиватели направляют выходные данные трассировки в соответствующий целевой объект, например журнал, окно или текстовый файл.
Слушатели доступны для классов Debug, Trace и TraceSource, каждый из которых может отправлять свои выходные данные в различные объекты слушателей. Ниже приведены обычно используемые предопределенные прослушиватели.
Объект TextWriterTraceListener перенаправляет выходные данные на экземпляр TextWriter класса или на все, что является классом Stream . Он также может записывать данные в консоль или в файл, так как это Stream классы.
Выходные EventLogTraceListener данные перенаправляются в журнал событий.
DefaultTraceListener выводит сообщения Write и WriteLine в OutputDebugString и в метод Debugger.Log. В Visual Studio это приводит к отображению сообщений отладки в окне вывода. Сбой и неудачные сообщения Assert также отправляются в API Windows OutputDebugString и метод Debugger.Log , а также вызывают отображение поля сообщения. Это поведение по умолчанию для Debug и Trace сообщений, так как DefaultTraceListener автоматически включается в каждую коллекцию
Listeners
и является единственным слушателем, добавляемым автоматически.Направляет ConsoleTraceListener результаты трассировки или отладки в стандартный вывод или стандартный поток ошибок.
DelimitedListTraceListener перенаправляет выходные данные трассировки или отладки к текстовому записывающему устройству, например, к потоковому записывающему устройству, или к потоку, например, файловому потоку. Выходные данные трассировки отображаются в текстовом формате с разделителями, заданном свойством Delimiter .
XmlWriterTraceListener направляет трассировку или отладку выходных данных как XML-кодированные данные в TextWriter или в Stream, таких как FileStream.
Если вы хотите, чтобы помимо DefaultTraceListener какой-либо другой слушатель получал выходные данные отладки, трассировки и TraceSource, необходимо добавить его в коллекцию Listeners
. Дополнительные сведения см. в статье "Практическое руководство. Создание и инициализация прослушивателей трассировки и практическое руководство. Использование TraceSource и фильтров с прослушивателями трассировки". Любой слушатель в коллекции прослушивателей получает те же сообщения из методов трассировки. Например, предположим, что вы настроили два прослушивателя: TextWriterTraceListener и EventLogTraceListener. Каждый прослушиватель получает одно и то же сообщение.
TextWriterTraceListener будет направлять выходные данные в поток, а EventLogTraceListener будет направлять выходные данные в журнал событий.
В следующем примере показано, как отправлять выходные данные в коллекцию прослушивателей .
' Use this example when debugging.
Debug.WriteLine("Error in Widget 42")
' Use this example when tracing.
Trace.WriteLine("Error in Widget 42")
// Use this example when debugging.
System.Diagnostics.Debug.WriteLine("Error in Widget 42");
// Use this example when tracing.
System.Diagnostics.Trace.WriteLine("Error in Widget 42");
Отладка и трассировка совместно используют одну и ту же коллекцию прослушивателей , поэтому при добавлении объекта прослушивателя в коллекцию Debug.Listen в приложение он также добавляется в коллекцию Trace.Listen .
В следующем примере показано, как использовать прослушиватель для отправки сведений отслеживания в консоль.
Trace.Listeners.Clear()
Trace.Listeners.Add(New TextWriterTraceListener(Console.Out))
System.Diagnostics.Trace.Listeners.Clear();
System.Diagnostics.Trace.Listeners.Add(
new System.Diagnostics.TextWriterTraceListener(Console.Out));
прослушиватели Developer-Defined
Вы можете определить собственные прослушиватели, наследуя базовый класс TraceListener и переопределяя его методы вашими собственными методами. Дополнительные сведения о создании определяемых разработчиком прослушивателей см. TraceListener в справочнике по .NET Framework.