Exemplarische Vorgehensweise: Erstellen von benutzerdefinierten Protokolllistenern (Visual Basic)
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.
Tipp
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
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.
Klicken Sie auf die Registerkarte Signierung.
Wählen Sie das Feld Assembly signieren aus.
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.
Geben Sie im Feld Schlüsseldateiname einen Namen für die Schlüsseldatei an.
Geben Sie in den Feldern Kennwort eingeben und Kennwort bestätigen ein Kennwort ein.
Klicken Sie auf OK.
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
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:
Klicken Sie im Menü Projekt auf Neues Element hinzufügen.
Klicken Sie im Dialogfeld Neues Element hinzufügen auf Anwendungskonfigurationsdatei.
Klicken Sie auf Hinzufügen.
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).
Fügen Sie dem <listeners>-Abschnitt dieses Element hinzu:
<add name="SimpleLog" />
Suchen Sie den <sharedListeners>-Abschnitt im <system.diagnostics>-Abschnitt im <configuration>-Abschnitt auf der obersten Ebene.
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 (Visual Basic)
Referenz
Microsoft.VisualBasic.Logging.Log