Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Примечание.
Эта статья относится к .NET Framework. Он не применяется к более новым реализациям .NET, включая .NET 6 и более поздние версии.
Классы 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();