Поделиться через


Пошаговое руководство. Создание пользовательских прослушивателей журнала

Обновлен: Ноябрь 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 позволяет узлу, на котором выполняется код, знать, что код обеспечивает синхронизацию защиты узла.

    ms172718.alert_note(ru-ru,VS.90).gifПримечание.

    Атрибут HostProtectionAttribute применяется только для неуправляемых приложений, на которых размещена среда CLR и которые реализуют защиту узлов, таких как SQL Server.

Чтобы обеспечить использование объектом My.Application.Log этого прослушивателя журнала, следует присвоить строгое имя сборке, содержащей прослушиватель журнала.

В следующей процедуре продемонстрировано несколько простых шагов по созданию сборки прослушивателя журнала со строгим именем. Дополнительные сведения см. в разделе Создание и использование сборок со строгими именами.

Чтобы присвоить строгое имя сборке прослушивателя журнала

  1. Выберите проект в обозревателе решений. В меню Проект выберите пункт Свойства. Дополнительные сведения см. в разделе Знакомство с конструктором проектов.

  2. Выберите вкладку Подпись.

  3. Выберите поле Подписать сборку.

  4. В списке Выберите файл ключей строгого имени выберите пункт <Создать>.

    Появится диалоговое окно Создание ключа строгого имени.

  5. Укажите имя для файла ключа в поле Имя файла ключей.

  6. Введите пароль в поля Вводите пароль и Подтверждение пароля.

  7. Нажмите кнопку ОК.

  8. Перестройте приложение.

Добавление прослушивателя

Теперь, когда сборка имеет строгое имя, необходимо определить строгое имя прослушивателя с тем, чтобы объект 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

  1. Щелкните правой кнопкой мыши файл app.config в обозревателе решений и выберите команду Открыть.

    либо

    Если есть файл app.config:

    1. В меню Проект выберите пункт Добавить новый элемент.

    2. В диалоговом окне Добавление нового элемента выберите Файл конфигурации приложения.

    3. Нажмите кнопку Добавить.

  2. Найдите раздел <listeners> в разделе <source> с атрибутом "DefaultSource" типа name, расположенном в разделе <sources>. Раздел <sources> находится в разделе <system.diagnostics> на верхнем уровне раздела <configuration>.

  3. Добавьте этот элемент в раздел <listeners>.

    <add name="SimpleLog" />
    
  4. Найдите раздел <sharedListeners> в разделе <system.diagnostics> на верхнем уровне раздела <configuration>.

  5. Добавьте этот элемент в раздел <sharedListeners>.

    <add name="SimpleLog" type="SimpleLogStrongName" />
    

    Измените значение SimpleLogStrongName на строгое имя прослушивателя.

См. также

Задачи

Практическое руководство. Запись в журнал сведений об исключениях в Visual Basic

Практическое руководство. Запись сообщений в журнал

Пошаговое руководство. Изменение места записи информации для My.Application.Log

Основные понятия

Работа с журналами приложения в Visual Basic

Ссылки

Объект My.Application.Log

Объект My.Log