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


* При перепечатке материалов ссылка на 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

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

Реализация полиморфизма через наследование
Вывод типов
Форматирование, зависимое от культуры
События жизненного цикла формы
Компонент PrintDocument
Модель защиты, основанная на ролях
Создание экземпляров элементов управления ActiveX
Создание проекта установочной программы
Работа с несколькими результирующими наборами
Стратегия оптимизации
Окна Locals, Autos и Watch
Реализация полиморфизма через интерфейсы
Инкапсуляция
Специальные возможности и логотип «Certified for Windows»
Наборы
| .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. Регион сайта: Москва и Санкт-Петербург