Пошаговое руководство. Создание пользовательских прослушивателей журнала
Обновлен: Ноябрь 2007
В этом пошаговом руководстве демонстрируется порядок создания пользовательского прослушивателя журнала и его настройки для прослушивания вывода объекта My.Application.Log.
Приступая к работе
Прослушиватели журнала должны быть наследниками класса TraceListener.
Чтобы создать прослушиватель
В приложении создайте класс SimpleListener, наследуемый от класса TraceListener.
Public Class SimpleListener Inherits System.Diagnostics.TraceListener <Security.Permissions.HostProtection(Synchronization:=True)> _ Public Overloads Overrides Sub Write(ByVal message As String) MsgBox("Write: " & message) End Sub <Security.Permissions.HostProtection(Synchronization:=True)> _ Public Overloads Overrides Sub WriteLine(ByVal message As String) MsgBox("WriteLine: " & message) End Sub End Class
Методы Write и WriteLine, требуемые базовым классом, вызывают функцию MsgBox для отображения входных данных.
Атрибут HostProtectionAttribute применяется к методам Write и WriteLine таким образом, чтобы их атрибуты соответствовали методам базового класса. Атрибут HostProtectionAttribute позволяет узлу, на котором выполняется код, знать, что код обеспечивает синхронизацию защиты узла.
Примечание. Атрибут HostProtectionAttribute применяется только для неуправляемых приложений, на которых размещена среда CLR и которые реализуют защиту узлов, таких как SQL Server.
Чтобы обеспечить использование объектом My.Application.Log этого прослушивателя журнала, следует присвоить строгое имя сборке, содержащей прослушиватель журнала.
В следующей процедуре продемонстрировано несколько простых шагов по созданию сборки прослушивателя журнала со строгим именем. Дополнительные сведения см. в разделе Создание и использование сборок со строгими именами.
Чтобы присвоить строгое имя сборке прослушивателя журнала
Выберите проект в обозревателе решений. В меню Проект выберите пункт Свойства. Дополнительные сведения см. в разделе Знакомство с конструктором проектов.
Выберите вкладку Подпись.
Выберите поле Подписать сборку.
В списке Выберите файл ключей строгого имени выберите пункт <Создать>.
Появится диалоговое окно Создание ключа строгого имени.
Укажите имя для файла ключа в поле Имя файла ключей.
Введите пароль в поля Вводите пароль и Подтверждение пароля.
Нажмите кнопку ОК.
Перестройте приложение.
Добавление прослушивателя
Теперь, когда сборка имеет строгое имя, необходимо определить строгое имя прослушивателя с тем, чтобы объект My.Application.Log использовал прослушиватель журнала.
Тип со строгим именем имеет следующий формат:
<имя типа>, <имя сборки>, <номер версии>, <язык>, <строгое имя>
Чтобы определить строгое имя прослушивателя
В следующем коде показано, как определить строгое имя типа для SimpleListener.
Public Sub DisplaySimpleListenerStrongName() Dim t As Type = GetType(SimpleListener) MsgBox(t.FullName & ", " & t.Assembly.FullName) End Sub
Строгое имя типа зависит от проекта.
Можно добавить прослушиватель со строгим именем в коллекцию прослушивателей журнала My.Application.Log.
Чтобы добавить прослушиватель в коллекцию My.Application.Log
Щелкните правой кнопкой мыши файл app.config в обозревателе решений и выберите команду Открыть.
либо
Если есть файл app.config:
В меню Проект выберите пункт Добавить новый элемент.
В диалоговом окне Добавление нового элемента выберите Файл конфигурации приложения.
Нажмите кнопку Добавить.
Найдите раздел <listeners> в разделе <source> с атрибутом "DefaultSource" типа name, расположенном в разделе <sources>. Раздел <sources> находится в разделе <system.diagnostics> на верхнем уровне раздела <configuration>.
Добавьте этот элемент в раздел <listeners>.
<add name="SimpleLog" />
Найдите раздел <sharedListeners> в разделе <system.diagnostics> на верхнем уровне раздела <configuration>.
Добавьте этот элемент в раздел <sharedListeners>.
<add name="SimpleLog" type="SimpleLogStrongName" />
Измените значение SimpleLogStrongName на строгое имя прослушивателя.
См. также
Задачи
Практическое руководство. Запись в журнал сведений об исключениях в Visual Basic
Практическое руководство. Запись сообщений в журнал
Пошаговое руководство. Изменение места записи информации для My.Application.Log
Основные понятия
Работа с журналами приложения в Visual Basic