Exemplarische Vorgehensweise: Erstellen von benutzerdefinierten Protokolllistenern (Visual Basic)Walkthrough: Creating Custom Log Listeners (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.This walkthrough demonstrates how to create a custom log listener and configure it to listen to the output of the My.Application.Log object.

Erste SchritteGetting Started

Protokolllistener müssen von der TraceListener-Klasse erben.Log listeners must inherit from the TraceListener class.

So erstellen Sie den ListenerTo create the listener

  • Erstellen Sie in Ihrer Anwendung eine Klasse mit dem Namen SimpleListener, die von TraceListener erbt.In your application, create a class named SimpleListener that inherits from 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
    

    Die Methoden Write und WriteLine sind für die Basisklasse erforderlich und rufen MsgBox auf, um ihre Eingabe anzuzeigen.The Write and WriteLine methods, required by the base class, call MsgBox to display their input.

    Das HostProtectionAttribute-Attribut wird auf die Methoden Write und WriteLine angewendet, damit ihre Attribute den Methoden der Basisklasse entsprechen.The HostProtectionAttribute attribute is applied to the Write and WriteLine methods so that their attributes match the base class methods. Mithilfe des Attributs HostProtectionAttribute kann der Host, der den Code ausführt, ermitteln, ob der Code die Synchronisierung der Hostsicherheit verfügbar macht.The HostProtectionAttribute attribute allows the host that runs the code to determine that the code exposes host-protection synchronization.

    Hinweis

    Das Attribut HostProtectionAttribute ist nur in nicht verwalteten Anwendungen effektiv, die die Common Language Runtime hosten und Hostschutz implementieren, z.B. SQL Server.The HostProtectionAttribute attribute is effective only on unmanaged applications that host the common language runtime and that implement host protection, such as SQL Server.

Sie sollten der Assembly, die Ihren Protokolllistener enthält, einen starken Namen geben, um sicherzustellen, dass My.Application.Log Ihren Protokolllistener verwendet.To ensure that My.Application.Log uses your log listener, you should strongly name the assembly that contains your log listener.

Im nächste Verfahren finden Sie einige einfache Schritte zum Erstellen einer Assembly mit starkem Namen und Protokolllistener.The next procedure provides some simple steps for creating a strongly named log-listener assembly. Weitere Informationen finden Sie unter Erstellen und Verwenden von Assemblys mit starkem Namen.For more information, see Creating and Using Strong-Named Assemblies.

So geben Sie der Assembly mit Protokolllistener einen starken NamenTo strongly name the log-listener assembly

  1. Ein Projekt auswählen in Projektmappen-Explorer.Have a project selected in Solution Explorer. Klicken Sie im Menü Projekt auf Eigenschaften.On the Project menu, choose Properties. Weitere Informationen finden Sie unter Einführung in den Projekt-Designer.For more information, see Introduction to the Project Designer.

  2. Klicken Sie auf die Registerkarte Signierung.Click the Signing tab.

  3. Wählen Sie das Feld Sign the assembly (Assembly signieren) aus.Select the Sign the assembly box.

  4. Wählen Sie in der Dropdownliste Schlüsseldatei mit starkem Namen auswählen <Neu> aus.Select <New> from the Choose a strong name key file drop-down list.

    Das Dialogfeld Schlüssel für einen starken Namen erstellen wird geöffnet.The Create Strong Name Key dialog box opens.

  5. Geben Sie einen Namen für die Schlüsseldatei im Feld Schlüsseldateiname ein.Provide a name for the key file in the Key file name box.

  6. Geben Sie in die Felder Kennwort eingeben und Kennwort bestätigen ein Kennwort ein.Enter a password in the Enter password and Confirm password boxes.

  7. Klicken Sie auf OK.Click OK.

  8. Erstellen Sie die Anwendung neu.Rebuild the application.

Hinzufügen des ListenersAdding the Listener

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.Now that the assembly has a strong name, you need to determine the strong name of the listener so that My.Application.Log uses your log listener.

Das Format für einen Typ mit starkem Namen ist wie folgt.The format of a strongly named type is as follows.

<Typname>, <Assemblyname>, <Versionsnummer>, <Kultur>, <starker Name><type name>, <assembly name>, <version number>, <culture>, <strong name>

So bestimmen Sie den starken Namen des ListenersTo determine the strong name of the listener

  • Im folgenden Code wird gezeigt, wie Sie den Namen für den Typ mit starkem Namen für SimpleListener bestimmen.The following code shows how to determine the strongly named type name for SimpleListener.

    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.The strong name of the type depends on your project.

Sie können mit dem starken Namen den Listener zur My.Application.Log-Auflistung der Protokolllistener hinzufügen.With the strong name, you can add the listener to the My.Application.Log log-listener collection.

So fügen Sie den Listener zu „My.Application.Log“ hinzuTo add the listener to My.Application.Log

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf „app.config“, und wählen Sie Öffnen aus.Right-click on app.config in the Solution Explorer and choose Open.

    - oder - -or-

    Wenn eine app.config-Datei vorhanden ist:If there is an app.config file:

    1. Klicken Sie im Menü Projekt auf Neues Element hinzufügen.On the Project menu, choose Add New Item.

    2. Wählen Sie im Dialogfeld Neues Element hinzufügen den Eintrag Anwendungskonfigurationsdateiaus.From the Add New Item dialog box, choose Application Configuration File.

    3. Klicken Sie auf Hinzufügen.Click Add.

  2. Suchen Sie den <listeners> -Abschnitt, der sich im <source> -Abschnitt mit dem name -Attribut "DefaultSource" im Abschnitt <sources> befindet.Locate the <listeners> section, in the <source> section with the name attribute "DefaultSource", located in the <sources> section. Der Abschnitt <sources> befindet sich im <system.diagnostics> -Abschnitt im Abschnitt <configuration> der obersten Ebene.The <sources> section is located in the <system.diagnostics> section, in the top-level <configuration> section.

  3. Fügen Sie dem Abschnitt <listeners> dieses Element hinzu:Add this element to the <listeners> section:

    <add name="SimpleLog" />  
    
  4. Suchen Sie den Abschnitt <sharedListeners> im <system.diagnostics> -Abschnitt im Abschnitt <configuration> der obersten Ebene.Locate the <sharedListeners> section, in the <system.diagnostics> section, in the top-level <configuration> section.

  5. Fügen Sie dem <sharedListeners> -Abschnitt dieses Element hinzu:Add this element to that <sharedListeners> section:

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

    Ändern Sie den Wert von SimpleLogStrongName in den starken Namen des Listeners.Change the value of SimpleLogStrongName to be the strong name of the listener.

Siehe auchSee Also

Microsoft.VisualBasic.Logging.Log
Arbeiten mit AnwendungsprotokollenWorking with Application Logs
Gewusst wie: Protokollieren von AusnahmenHow to: Log Exceptions
Gewusst wie: Schreiben von ProtokollmeldungenHow to: Write Log Messages
Exemplarische Vorgehensweise: Ändern des Orts, in den „My.Application.Log“ Informationen schreibtWalkthrough: Changing Where My.Application.Log Writes Information