Имя Пароль
Зарегистрироваться


* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Набор Listeners
8 февраля 2009

Все данные, сгенерированные классами Trace и Debug, направляются в набор Listeners.
Это специальный набор, упорядочивающий классы, способные получать дан-
ные от Trace, и предоставляющий доступ к этим классам. Каждый член набора
Listeners в полном объеме получает данные, генерированные классами Trace и Debug,
способ обработки этих данных зависит от слушателя.
Набор Listeners инициализируется единственным членом, экземпляром класса
DefaultTraceListener. Как видно из имени этого класса, он автоматически создается
и получает данные от Trace и Debug даже в отсутствие других слушателей, добавлен-
ных явно. Полученные данные DefaultTraceListener передает отладчику и отобража-
ет в окне Output среды разработки Visual Studio. Чтобы создать журнал трассиро-
вочных сообщений, с которым можно работать независимо от отладчика, необхо-
димо добавить по крайней мере один объект Listener. В библиотеке базовых классов
.NET Framework есть два класса, позволяющих создать журнал Trace — EventLog-
TraceListener и TextWriterTraceListener. Оба они являются потомками абстрактного
.NET-класса Trace Listener,
Запись трассировочных данных в текстовом формате
Данные, генерируемые классом Text WriterTrace Listener, записываются в текстовый
файл, в объект Stream либо в объект Text Writer. Например, у класса Text Writer есть
свойство Console.Out, позволяющее создать класс TextWriterTraceListener, который
записывает данные в окно Console. Объекты Stream и TextWriter также применяют-
ся для записи данных в текстовые файлы. Чтобы создать объект Text WriterTrace -
Listener для записи данных, генерированных классом Trace, в текстовый файл, преж-
де необходимо создать или открыть файл, куда будут записываться данные. После
этого следует создать экземпляр TextWriterTrace Listener, передав ему созданный или
открытый файл. В завершение следует добавить TextWriterTraceListener к набору
Listeners. Вот как это делается:
Visual Basic .NET
Открыть заданный файл или создать его, если он не существует,
Dim myLog As New System.10.FileStream("C:\myFile.txt".
IQ.FileMode.OpenOrCreate)
Создать новый объект слушателя и приказать ему
записывать выходные данные в файл myLog.
Dim inyListener As New TextWriterTraceListener(rnyLog)
Добавить объект myListener к набору Listeners.
Trace,Listeners,Add(myListener)
Visual C#
// Открыть заданный файл или создать его, если он не существует,
// Заметьте: путь к файлу необходимо указывать при помощи двойного слэша,
// поскольку слэш является управляющим символом в С#.
System.10.FileStream myLog = new System.10.FileStream("C:\\myFile.txt",
System.10.FileMode.OpenOrCreate);
// Создать новый объект слушателя и приказать ему
// записывать выходные данные в файл rriyLog.
TextWriterTraceListener myListener = new
TextWriterTraceListener(myLog);
// Добавить объект inyListener к набору Listeners.
Trace.Listeners.Add(myListener);
Примечание Если открыть существующий файл с помощью метода Ю.FileMode.
OpenOrCreate, содержимое файла будет перезаписано. Чтобы добавить новые дан-
ные к существующему файлу, объявляйте объект FileStream с помощью метода
Ю. File Mode. Append.
При исполнении кода из предыдущего примера все данные классов Trace и Debug
будут записаны в объект myListener. Чтобы на самом деле записать эти данные в
файл, необходимо сбросить буфер объекта Trace, вызвав метод Flush следующим
образом:
Visual Basic .NET
Trace.Flush()
Visual C#
Trace.Fiush();
Можно также установить свойство Trace. Auto Flush в true (см. пример далее), это
заставит сбрасывать буфер на диск после каждой записи в него.
Visual Basic .NET
Trace.AutoFlush - True
Visual C#
Trace.AutoFlush = true;
Чтобы записать выходные данные объектов Trace и Debug в текстовый файл, сде-
лайте следующее.
1. Создайте экземпляр объекта FileStream, указывающий на нужный текстовый
файл.
2. Создайте экземпляр TextWriterTraceListener, передав ему новый объект FUeStream.
3. Добавьте созданный объект Listener к набору Listeners.
4. Установите свойство Trace. Auto Flush в true или вызовите метод Trace. Flush после
записи данных.

Теги: .NET

Статьи по теме:

Всё новое - это хорошо забытое старое
Реализация полиморфизма через интерфейсы
Проверка разрешений, запрашиваемых установленной сборкой
Создание конфигурационного файла
Общие (статические) члены
Перечисления CTS
Делегаты CTS
Извлечение и обновление данных с помощью объектов DataAdapter и DataSet
Создание DataAdapter с помощью окна Server Explorer
Строительные блоки .NET
Ввод кода с помощью CodeInsight
Применение отладочных инструментов
Создание производных элементов управления
Типы данных .NET Framework
Blend PDF with Silverlight
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Набор Listeners. Регион сайта: Москва и Санкт-Петербург