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
Ein Projekt auswählen in Projektmappen-Explorer. Klicken Sie im Menü Projekt auf Eigenschaften.
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 einen Namen für die Schlüsseldatei im Feld Schlüsseldateiname ein.
Geben Sie in die Felder 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 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
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:
Klicken Sie im Menü Projekt auf Neues Element hinzufügen.
Wählen Sie im Dialogfeld Neues Element hinzufügen den Eintrag Anwendungskonfigurationsdateiaus.
Klicken Sie auf Hinzufügen.
Suchen Sie den
<listeners>
-Abschnitt, der sich im<source>
-Abschnitt mit demname
-Attribut "DefaultSource" im Abschnitt<sources>
befindet. Der Abschnitt<sources>
befindet sich im<system.diagnostics>
-Abschnitt im Abschnitt<configuration>
der obersten Ebene.Fügen Sie dem Abschnitt
<listeners>
dieses Element hinzu:<add name="SimpleLog" />
Suchen Sie den Abschnitt
<sharedListeners>
im<system.diagnostics>
-Abschnitt im Abschnitt<configuration>
der obersten Ebene.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.