Freigeben über


Exemplarische Vorgehensweise: Erstellen von benutzerdefinierten Protokolllistenern (Visual Basic)

Diese exemplarische Vorgehensweise veranschaulicht, wie Sie einen benutzerdefinierten Protokolllistener erstellen und ihn so konfigurieren, dass er der Ausgabe des My.Application.Log-Objekts lauscht.

Erste Schritte

Protokolllistener müssen von der TraceListener-Klasse erben.

So erstellen Sie den Listener

  • Erstellen Sie in Ihrer Anwendung eine Klasse mit dem Namen SimpleListener, die von TraceListener erbt.

    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
    

    Die Methoden Write und WriteLine sind für die Basisklasse erforderlich und rufen MsgBox auf, um ihre Eingabe anzuzeigen.

    Das HostProtectionAttribute-Attribut wird auf die Methoden Write und WriteLine angewendet, damit ihre Attribute den Methoden der Basisklasse entsprechen. Mithilfe des Attributs HostProtectionAttribute kann der Host, der den Code ausführt, ermitteln, ob der Code die Synchronisierung der Hostsicherheit verfügbar macht.

    Hinweis

    Das Attribut HostProtectionAttribute ist nur in nicht verwalteten Anwendungen effektiv, die die Common Language Runtime hosten und Hostschutz implementieren, z.B. SQL Server.

Sie sollten der Assembly, die Ihren Protokolllistener enthält, einen starken Namen geben, um sicherzustellen, dass My.Application.Log Ihren Protokolllistener verwendet.

Im nächste Verfahren finden Sie einige einfache Schritte zum Erstellen einer Assembly mit starkem Namen und Protokolllistener. Weitere Informationen finden Sie unter Erstellen und Verwenden von Assemblys mit starkem Namen.

So geben Sie der Assembly mit Protokolllistener einen starken Namen

  1. Ein Projekt auswählen in Projektmappen-Explorer. Klicken Sie im Menü Projekt auf Eigenschaften.

  2. Klicken Sie auf die Registerkarte Signierung.

  3. Wählen Sie das Feld Assembly signieren aus.

  4. Wählen Sie in der Dropdownliste Schlüsseldatei mit starkem Namen auswählen die Option <Neu> aus.

    Das Dialogfeld Schlüssel für einen starken Namen erstellen wird geöffnet.

  5. Geben Sie einen Namen für die Schlüsseldatei im Feld Schlüsseldateiname ein.

  6. Geben Sie in die Felder Kennwort eingeben und Kennwort bestätigen ein Kennwort ein.

  7. Klicken Sie auf OK.

  8. Erstellen Sie die Anwendung neu.

Hinzufügen des Listeners

Da die Assembly jetzt über einen starken Namen verfügt, müssen Sie den starken Namen des Listeners bestimmen, damit My.Application.Log Ihren Protokolllistener verwendet.

Das Format für einen Typ mit starkem Namen ist wie folgt.

<Typname>, <Assemblyname>, <Versionsnummer>, <Kultur>, <starker Name>

So bestimmen Sie den starken Namen des Listeners

  • Im folgenden Code wird gezeigt, wie Sie den Namen für den Typ mit starkem Namen für SimpleListener bestimmen.

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

    Der starke Name des Typs hängt von Ihrem Projekt ab.

Sie können mit dem starken Namen den Listener zur My.Application.Log-Auflistung der Protokolllistener hinzufügen.

So fügen Sie den Listener zu „My.Application.Log“ hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf „app.config“, und wählen Sie Öffnen aus.

    - oder -

    Wenn eine app.config-Datei vorhanden ist:

    1. Klicken Sie im Menü Projekt auf Neues Element hinzufügen.

    2. Wählen Sie im Dialogfeld Neues Element hinzufügen den Eintrag Anwendungskonfigurationsdateiaus.

    3. Klicken Sie auf Hinzufügen.

  2. Suchen Sie den <listeners> -Abschnitt, der sich im <source> -Abschnitt mit dem name -Attribut "DefaultSource" im Abschnitt <sources> befindet. Der Abschnitt <sources> befindet sich im <system.diagnostics> -Abschnitt im Abschnitt <configuration> der obersten Ebene.

  3. Fügen Sie dem Abschnitt <listeners> dieses Element hinzu:

    <add name="SimpleLog" />
    
  4. Suchen Sie den Abschnitt <sharedListeners> im <system.diagnostics> -Abschnitt im Abschnitt <configuration> der obersten Ebene.

  5. Fügen Sie dem <sharedListeners> -Abschnitt dieses Element hinzu:

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

    Ändern Sie den Wert von SimpleLogStrongName in den starken Namen des Listeners.

Siehe auch