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

Aktualisiert: November 2007

Sie können das My.Application.Log-Objekt und das My.Log-Objekt verwenden, um Informationen über in der Anwendung auftretende Ereignisse zu protokollieren. In dieser exemplarischen Vorgehensweise wird beschrieben, wie Sie die Standardeinstellungen überschreiben und das Log-Objekt so konfigurieren können, dass dieses in andere Protokollüberwachungen schreibt.

Vorbereitungsmaßnahmen

Das Log-Objekt kann Informationen in mehrere Protokollüberwachungen schreiben. Vor dem Ändern der Konfigurationen müssen Sie die aktuelle Konfiguration der Protokollüberwachungen ermitteln. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Bestimmen, wohin "My.Application.Log" Informationen schreibt.

Es empfiehlt sich auch, die Informationen unter Gewusst wie: Schreiben von Ereignisinformationen in eine Textdatei und Gewusst wie: Schreiben in ein Anwendungsereignisprotokoll zu lesen.

So fügen Sie Listener hinzu

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

    oder

    Wenn keine 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 diesem <listeners>-Abschnitt die folgenden Elemente hinzu.

    <!-- Uncomment to connect the application file log. -->
    <!-- <add name="FileLog" /> -->
    <!-- Uncomment to connect the event log. -->
    <!-- <add name="EventLog" /> -->
    <!-- Uncomment to connect the event log. -->
    <!-- <add name="Delimited" /> -->
    <!-- Uncomment to connect the XML log. -->
    <!-- <add name="XmlWriter" /> -->
    <!-- Uncomment to connect the console log. -->
    <!-- <add name="Console" /> -->
    
  4. Heben Sie die Auskommentierung des Codes für die Protokollüberwachungen auf, die Log-Meldungen empfangen sollen.

  5. Suchen Sie den <sharedListeners>-Abschnitt im <system.diagnostics>-Abschnitt im <configuration>-Abschnitt auf der obersten Ebene.

  6. Fügen Sie diesem <sharedListeners>-Abschnitt die folgenden Elemente hinzu.

          <add name="FileLog"
               type="Microsoft.VisualBasic.Logging.FileLogTraceListener, 
                     Microsoft.VisualBasic, Version=8.0.0.0, 
                     Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
               initializeData="FileLogWriter" />
          <add name="EventLog"
               type="System.Diagnostics.EventLogTraceListener, 
                     System, Version=2.0.0.0, 
                     Culture=neutral, PublicKeyToken=b77a5c561934e089"
               initializeData="sample application"/>
          <add name="Delimited" 
               type="System.Diagnostics.DelimitedListTraceListener, 
                     System, Version=2.0.0.0, 
                     Culture=neutral, PublicKeyToken=b77a5c561934e089"
               initializeData="c:\temp\sampleDelimitedFile.txt"
               delimiter=";;;"
               traceOutputOptions="DateTime" />
          <add name="XmlWriter"
               type="System.Diagnostics.XmlWriterTraceListener, 
                     System, Version=2.0.0.0, 
                     Culture=neutral, PublicKeyToken=b77a5c561934e089"
               initializeData="c:\temp\sampleLogFile.xml" />
          <add name="Console"
               type="System.Diagnostics.ConsoleTraceListener, 
                     System, Version=2.0.0.0, 
                     Culture=neutral, PublicKeyToken=b77a5c561934e089"
               initializeData="true" />
    
  7. Der Inhalt der Datei app.config sollte dem folgenden XML-Ausschnitt ähnlich sein:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.diagnostics>
        <sources>
          <!-- This section configures My.Application.Log -->
          <source name="DefaultSource" switchName="DefaultSwitch">
            <listeners>
              <add name="FileLog"/>
              <!-- Uncomment to connect the application file log. -->
              <!-- <add name="FileLog" /> -->
              <!-- Uncomment to connect the event log. -->
              <!-- <add name="EventLog" /> -->
              <!-- Uncomment to connect the event log. -->
              <!-- <add name="Delimited" /> -->
              <!-- Uncomment to connect the XML log. -->
              <!-- <add name="XmlWriter" /> -->
              <!-- Uncomment to connect the console log. -->
              <!-- <add name="Console" /> -->
            </listeners>
          </source>
        </sources>
        <switches>
          <add name="DefaultSwitch" value="Information" />
        </switches>
        <sharedListeners>
          <add name="FileLog"
               type="Microsoft.VisualBasic.Logging.FileLogTraceListener, 
                     Microsoft.VisualBasic, Version=8.0.0.0, 
                     Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
               initializeData="FileLogWriter" />
          <add name="EventLog"
               type="System.Diagnostics.EventLogTraceListener, 
                     System, Version=2.0.0.0, 
                     Culture=neutral, PublicKeyToken=b77a5c561934e089"
               initializeData="sample application"/>
          <add name="Delimited" 
               type="System.Diagnostics.DelimitedListTraceListener, 
                     System, Version=2.0.0.0, 
                     Culture=neutral, PublicKeyToken=b77a5c561934e089"
               initializeData="c:\temp\sampleDelimitedFile.txt"
               delimiter=";;;"
               traceOutputOptions="DateTime" />
          <add name="XmlWriter"
               type="System.Diagnostics.XmlWriterTraceListener, 
                     System, Version=2.0.0.0, 
                     Culture=neutral, PublicKeyToken=b77a5c561934e089"
               initializeData="c:\temp\sampleLogFile.xml" />
          <add name="Console"
               type="System.Diagnostics.ConsoleTraceListener, 
                     System, Version=2.0.0.0, 
                     Culture=neutral, PublicKeyToken=b77a5c561934e089"
               initializeData="true" />
        </sharedListeners>
      </system.diagnostics>
    </configuration>
    

So ändern Sie die Konfiguration für einen Listener

  1. Suchen Sie im <sharedListeners>-Abschnitt das <add>-Element des Listeners.

  2. Das type-Attribut gibt den Namen des Listenertyps an. Dieser Typ muss von der TraceListener-Klasse erben. Verwenden Sie den Namen des Typs mit starkem Namen, um sicherzustellen, dass der richtige Typ verwendet wird. Weitere Informationen finden Sie im Abschnitt "So verweisen Sie auf einen Typ mit starkem Namen" weiter unten.

    Sie können beispielsweise folgende Typen verwenden:

    Informationen zu den Ausgabezielen für andere Typen von Protokollüberwachungen finden Sie in der Dokumentation für den jeweiligen Typ.

  3. Beim Erstellen des Protokollüberwachungsobjekts durch die Anwendung wird das initializeData-Attribut als Konstruktorparameter übergeben. Die Bedeutung des initializeData-Attributs hängt vom Ablaufverfolgungslistener ab.

  4. Nach dem Erstellen der Protokollüberwachung legt die Anwendung die Eigenschaften des Listeners fest. Diese Eigenschaften werden durch die anderen Attribute im <add>-Element definiert. Weitere Informationen zu den Eigenschaften für einen bestimmten Listener finden Sie in der Dokumentation für den Typ dieses Listeners.

So verweisen Sie auf einen Typ mit starkem Namen

  1. Um sicherzustellen, dass der korrekte Typ für die Protokollüberwachung verwendet wird, verwenden Sie den vollqualifizierten Typnamen oder den Namen der Assembly mit starkem Namen. Die Syntax für einen Typ mit starkem Namen ist wie folgt:

    <type name>, <assembly name>, <version number>, <culture>, <strong name>

  2. Im folgenden Codebeispiel wird gezeigt, wie der Name des Typs mit starkem Namen für einen vollqualifizierten Typ bestimmt wird (in diesem Fall "System.Diagnostics.FileLogTraceListener").

    Public Sub DisplayStrongName()
        Dim t As Type = GetType(Logging.FileLogTraceListener)
        MsgBox(t.FullName & ", " & t.Assembly.FullName)
    End Sub
    

    Die nachfolgend dargestellte Ausgabe können Sie verwenden, um eindeutig auf einen Typ mit starkem Namen zu verweisen (z. B. im Verfahren "So fügen Sie Listener hinzu" weiter oben).

    Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

Siehe auch

Aufgaben

Gewusst wie: Schreiben von Ereignisinformationen in eine Textdatei

Gewusst wie: Schreiben in ein Anwendungsereignisprotokoll

Referenz

My.Application.Log-Objekt

My.Log-Objekt

TraceListener

Microsoft.VisualBasic.Logging.FileLogTraceListener

System.Diagnostics.EventLogTraceListener