Exemplarische Vorgehensweise: Erstellen von benutzerdefinierten Protokolllistenern

Aktualisiert: November 2007

In dieser exemplarische Vorgehensweise wird erläutert, wie Sie einen benutzerdefinierten Protokolllistener erstellen und so konfigurieren können, dass dieser die Ausgaben des My.Application.Log-Objekts überwacht.

Erste Schritte

Protokolllistener müssen von der TraceListener-Klasse erben.

So erstellen Sie den Listener

  • Erstellen Sie in der 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 Write-Methode und die WriteLine-Methode, die für die Basisklasse erforderlich sind, rufen MsgBox auf, um die Eingaben für diese Methoden anzuzeigen.

    Das HostProtectionAttribute-Attribut wird auf die Write-Methode und die WriteLine-Methode angewendet, sodass deren Attribute den Methoden der Basisklasse entsprechen. Durch das HostProtectionAttribute-Attribut kann der Host, auf dem der Code ausgeführt wird, ermitteln, dass der Code Hostschutzsynchronisierung verfügbar macht.

    Hinweis:

    Das HostProtectionAttribute-Attribut gilt nur für nicht verwaltete Anwendungen, bei denen die Common Language Runtime ausgeführt wird und die Hostschutz implementieren, z. B. SQL Server.

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

Im nächsten Verfahren werden einige einfache Schritte für das Erstellen einer Protokolllistenerassembly mit starkem Namen aufgeführt. Weitere Informationen finden Sie unter Erstellen und Verwenden von Assemblys mit starkem Namen.

So weisen Sie der Protokolllistenerassembly einen starken Namen zu

  1. Wählen Sie im Projektmappen-Explorer ein Projekt aus. Klicken Sie im Menü Projekt auf Eigenschaften. Weitere Informationen finden Sie unter Einführung in den Projekt-Designer.

  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 im Feld Schlüsseldateiname einen Namen für die Schlüsseldatei an.

  6. Geben Sie in den Feldern 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 ermitteln, damit My.Application.Log den Protokolllistener verwendet.

Das Format eines Typs 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 der Name des Typs mit starkem Namen für SimpleListener bestimmt wird.

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

    Der starke Name des Typs hängt vom Projekt ab.

Mithilfe des starken Namens können Sie den Listener der My.Application.Log-Protokolllistenerauflistung hinzufügen.

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

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

    - oder -

    Wenn eine app.config-Datei vorhanden ist:

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

    2. Klicken Sie im Dialogfeld Neues Element hinzufügen auf Anwendungskonfigurationsdatei.

    3. Klicken Sie auf Hinzufügen.

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

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

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

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

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

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

Siehe auch

Aufgaben

Gewusst wie: Protokollieren von Ausnahmen in Visual Basic

Gewusst wie: Schreiben von Protokollmeldungen

Exemplarische Vorgehensweise: Ändern des Ortes, in den "My.Application.Log" Informationen schreibt

Konzepte

Arbeiten mit Anwendungsprotokollen in Visual Basic

Referenz

My.Application.Log-Objekt

My.Log-Objekt