Exemplarische Vorgehensweise: Ändern des Orts, in den "My.Application.Log" Informationen schreibt (Visual Basic)
Sie können die Objekte My.Application.Log
und My.Log
verwenden, um Informationen über Ereignisse zu protokollieren, die in Ihrer Anwendung auftreten. In dieser exemplarischen Vorgehensweise erfahren Sie, wie Sie die Standardeinstellungen außer Kraft setzen und das Log
-Objekt dazu bringen können, in andere Protokolllistener zu schreiben.
Voraussetzungen
Das Log
-Objekt kann Informationen in verschiedene Protokolllistener schreiben. Sie müssen die aktuelle Konfiguration der Protokolllistener bestimmen, bevor Sie die Konfigurationen ändern können. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Bestimmen, wohin „My.Application.Log“ Informationen schreibt.
Es kann nützlich sein, Vorgehensweise: Schreiben von Ereignisinformationen in eine Textdatei oder Vorgehensweise: Schreiben in ein Anwendungsereignisprotokoll durchzuarbeiten.
Hinzufügen von Listenern
Klicken Sie im Projektmappen-Explorer auf "app.config", und wählen Sie Öffnenaus.
- oder -
Wenn keine 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 unter dem<source>
-Abschnitt mit demname
-Attribut "DefaultSource" im Abschnitt<sources>
. Der Abschnitt<sources>
befindet sich im<system.diagnostics>
-Abschnitt im Abschnitt<configuration>
der obersten Ebene.Fügen Sie dem betreffenden
<listeners>
-Abschnitt diese 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" /> -->
Entfernen Sie die Auskommentierungen der Protokolllistener, die
Log
-Meldungen empfangen sollen.Suchen Sie den Abschnitt
<sharedListeners>
im<system.diagnostics>
-Abschnitt im Abschnitt<configuration>
der obersten Ebene.Fügen Sie dem betreffenden
<sharedListeners>
-Abschnitt diese 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" 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" />
Der Inhalt der app.config-Datei sollte ähnlich dem folgenden XML-Code 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" 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>
Umkonfigurieren eines Listeners
Suchen Sie im Abschnitt
<add>
das<sharedListeners>
-Element des Listeners.Das
type
-Attribut enthält den Namen des Listenertyps. Dieser Typ muss von der TraceListener -Klasse erben. Verwenden Sie den starken Typnamen, um sicherzustellen, dass der richtige Typ verwendet wird. Weitere Informationen finden Sie unten im Abschnitt "Verweise auf Typen mit starken Namen".Dies sind einige der Typen, die Sie verwenden können:
Ein Microsoft.VisualBasic.Logging.FileLogTraceListener -Listener, der in eine Protokolldatei schreibt.
Ein System.Diagnostics.EventLogTraceListener -Listener, der Informationen in das Ereignisprotokoll des Computers schreibt, das im
initializeData
-Parameter angegeben ist.Die System.Diagnostics.DelimitedListTraceListener - und System.Diagnostics.XmlWriterTraceListener -Listener, die in die Datei schreiben, die im
initializeData
-Parameter angegeben ist.Ein System.Diagnostics.ConsoleTraceListener -Listener, der in die Befehlszeilenkonsole schreibt.
Informationen dazu, wohin andere Typen von Protokolllistenern Informationen schreiben, finden Sie in der Dokumentation zum entsprechenden Typ.
Wenn die Anwendung das Protokolllistenerobjekt erstellt, übergibt sie das
initializeData
-Attribut als Konstruktorparameter. Die Bedeutung desinitializeData
-Attributs hängt vom Ablaufverfolgungslistener ab.Nach dem Erstellen des Protokolllisteners 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 betreffenden Listenertyp.
Verweise auf Typen mit starkem Namen
Um sicherzustellen, dass der richtige Typ für Ihren Protokolllistener verwendet wird, achten Sie darauf, den vollqualifizierten Typnamen und den starken Assemblynamen zu verwenden. Die Syntax für einen Typ mit starkem Namen ist wie folgt:
<Typname>, <Assemblyname>, <Versionsnummer>, <Kultur>, <starker Name>
Dieses Codebeispiel zeigt, wie Sie den starken Typnamen für einen vollqualifizierten Typ bestimmen – in diesem Fall "System.Diagnostics.FileLogTraceListener".
Public Sub DisplayStrongName() Dim t As Type = GetType(Logging.FileLogTraceListener) MsgBox(t.FullName & ", " & t.Assembly.FullName) End Sub
Dies ist die Ausgabe, und sie kann verwendet werden, um eindeutig auf einen Typ mit starkem Namen zu verweisen, wie in der Verfahrensweise "Hinzufügen von Listenern" oben.
Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a