Udostępnij za pomocą


Przewodnik: tworzenie niestandardowych odbiorników dzienników (Visual Basic)

W tym przewodniku pokazano, jak utworzyć niestandardowy odbiornik dziennika i skonfigurować go do nasłuchiwania danych wyjściowych My.Application.Log obiektu.

Wprowadzenie

Odbiorniki dziennika muszą dziedziczyć z klasy TraceListener.

Aby utworzyć nasłuchiwacz

  • W aplikacji utwórz klasę o nazwie SimpleListener, dziedziczącą po 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
    

    Metody Write i WriteLine , wymagane przez klasę bazową, wywołają metodę MsgBox w celu wyświetlenia ich danych wejściowych.

    Atrybut HostProtectionAttribute jest stosowany do Write metod i WriteLine , aby ich atrybuty były zgodne z metodami klasy bazowej. Atrybut HostProtectionAttribute umożliwia hostowi, który uruchamia kod, określenie, że kod zapewnia synchronizację chroniącą host.

    Uwaga / Notatka

    Atrybut HostProtectionAttribute jest skuteczny tylko w aplikacjach niezarządzanych hostujących środowisko uruchomieniowe języka wspólnego i implementujących ochronę hosta, taką jak SQL Server.

Aby upewnić się, że My.Application.Log używa odbiornika dziennika, należy nadać silną nazwę zestawowi zawierającemu odbiornik dziennika.

Następna procedura zawiera kilka prostych kroków tworzenia silnie nazwanego zestawu odbiornika dziennika. Aby uzyskać więcej informacji, zobacz Tworzenie i używanie zestawów o silnych nazwach.

Aby zdecydowanie nazwać zestaw odbiornika dziennika

  1. Wybierz projekt w Eksploratorze rozwiązań. W menu Projekt wybierz pozycję Właściwości.

  2. Kliknij kartę podpisywania.

  3. Zaznacz pole Podpisz zestaw.

  4. Wybierz <Nowy> z listy rozwijanej Wybierz plik klucza silnej nazwy.

    Zostanie otwarte okno dialogowe Tworzenie silnej nazwy klucza.

  5. Podaj nazwę pliku klucza w polu Nazwa pliku klucza .

  6. Wprowadź hasło w polach Wprowadź hasło i Potwierdź hasło .

  7. Kliknij przycisk OK.

  8. Ponownie skompiluj aplikację.

Dodawanie odbiornika

Teraz, gdy zestaw ma silną nazwę, należy określić silną nazwę nasłuchiwacza, aby My.Application.Log używał nasłuchiwacza dziennika.

Format mocno nazwanego typu jest następujący.

<nazwa typu>, <nazwa zestawu>, <numer wersji>, <kultura>, <silna nazwa>

Aby określić silną nazwę odbiornika

  • Poniższy kod pokazuje, jak określić silnie nazwaną nazwę typu dla elementu SimpleListener.

    Public Sub DisplaySimpleListenerStrongName()
        Dim t As Type = GetType(SimpleListener)
        MsgBox(t.FullName & ", " & t.Assembly.FullName)
    End Sub
    

    Silna nazwa tego typu zależy od projektu.

Mając silną nazwę, możesz dodać odbiornik do kolekcji nasłuchiwaczy dziennika My.Application.Log.

Aby dodać odbiornik do My.Application.Log

  1. Kliknij prawym przyciskiem myszy app.config w Eksploratorze rozwiązań i wybierz polecenie Otwórz.

    — lub —

    Jeśli istnieje plik app.config:

    1. W menu Project (Projekt ) wybierz pozycję Add New Item (Dodaj nowy element).

    2. W oknie dialogowym Dodawanie nowego elementu wybierz pozycję Plik konfiguracji aplikacji.

    3. Kliknij przycisk Dodaj.

  2. Znajdź sekcję <listeners> w sekcji <source>, która ma atrybut name "DefaultSource" i znajduje się w sekcji <sources>. Sekcja <sources> znajduje się w sekcji <system.diagnostics>, będącej częścią górnego poziomu sekcji <configuration>.

  3. Dodaj ten element do <listeners> sekcji:

    <add name="SimpleLog" />
    
  4. Zlokalizuj sekcję <sharedListeners> w sekcji <system.diagnostics> w sekcji najwyższego poziomu <configuration>.

  5. Dodaj ten element do tej <sharedListeners> sekcji:

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

    Zmień wartość `SimpleLogStrongName` na silną nazwę odbiornika.

Zobacz także