Пошаговое руководство. Создание пользовательских прослушивателей журнала (Visual Basic)
В этом пошаговом руководстве демонстрируется создание пользовательского прослушивателя журнала и его настройка на прослушивание выходных данных объекта 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
для отображения входных данных.К методам Write и WriteLine применяется атрибут HostProtectionAttribute, чтобы их атрибуты соответствовали методы базового класса. Атрибут HostProtectionAttribute позволяет узлу, на котором выполняется код, проверять наличие в коде синхронизации защиты узла.
Примечание.
Атрибут HostProtectionAttribute действует только для неуправляемых приложений, на которых размещена среда CLR и реализована защита узлов, например для SQL Server.
Чтобы объект My.Application.Log
использовал прослушиватель журнала, следует присвоить строгое имя сборке, содержащей прослушиватель журнала.
В следующей процедуре показано несколько простых шагов по созданию сборки прослушивателя журнала со строгим именем. Дополнительные сведения см. в разделе Создание и использование сборок со строгими именами.
Задание строгого имени сборке прослушивателя журнала
Выберите проект в Обозревателе решений. В меню Проект выберите Свойства.
Откройте вкладку Подписание .
Выберите поле Подписать сборку .
Выберите "Создать"> в раскрывающемся списке "Выбор <файла ключа строгого имени".
Откроется диалоговое окно Создание ключа строгого имени.
Укажите имя для файла ключа в поле Имя файла ключа.
Введите пароль в поля Введите пароль и Подтверждение пароля.
Щелкните OK.
Перестройте приложение.
Добавление прослушивателя
Теперь, когда сборка имеет строгое имя, необходимо определить строгое имя прослушивателя, чтобы объект 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>
с атрибутомname
, равным DefaultSource, в разделе<sources>
. Раздел<sources>
находится в разделе<system.diagnostics>
в разделе<configuration>
верхнего уровня.Добавьте этот элемент в раздел
<listeners>
:<add name="SimpleLog" />
Найдите раздел
<sharedListeners>
в разделе<system.diagnostics>
в разделе<configuration>
верхнего уровня.Добавьте в этот раздел
<sharedListeners>
следующий элемент:<add name="SimpleLog" type="SimpleLogStrongName" />
Изменить значение
SimpleLogStrongName
на строгое имя прослушивателя.