Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mithilfe der My.Application.Log Objekte My.Log können Sie Informationen zu Ereignissen protokollieren, die in Ihrer Anwendung auftreten. In dieser exemplarischen Vorgehensweise wird gezeigt, wie Sie die Standardeinstellungen außer Kraft setzen und das Log-Objekt dazu bringen, an andere Protokolllistener zu schreiben.
Voraussetzungen
Das Log Objekt kann Informationen in mehrere Protokolllistener schreiben. Sie müssen die aktuelle Konfiguration der Protokolllistener ermitteln, bevor Sie die Konfigurationen ändern. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Bestimmen, wohin „My.Application.Log“ Informationen schreibt.
Sie möchten vielleicht Folgendes überprüfen: Wie man Ereignisinformationen in eine Textdatei schreibt oder Wie man in ein Anwendungsereignisprotokoll schreibt.
Hinzufügen von Listenern
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf app.config, und wählen Sie "Öffnen" aus.
-oder-
Wenn keine app.config Datei vorhanden ist:
Wählen Sie im Menü PROJEKT die Option Neues Element hinzufügen aus.
Wählen Sie im Dialogfeld " Neues Element hinzufügen " die Option "Anwendungskonfigurationsdatei" aus.
Klicken Sie auf Hinzufügen.
Suchen Sie den
<listeners>Abschnitt unter dem<source>Abschnitt mit demnameAttribut "DefaultSource" im<sources>Abschnitt. Der<sources>Abschnitt befindet sich im<system.diagnostics>Abschnitt, innerhalb des<configuration>Abschnitts auf oberster Ebene.Fügen Sie diese Elemente zu diesem
<listeners>Abschnitt 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 diese Elemente zu diesem
<sharedListeners>Abschnitt 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 mit dem folgenden XML-Code vergleichbar 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>
So konfigurieren Sie einen Listener neu
Suchen Sie im Abschnitt
<add>das<sharedListeners>-Element des Listeners.Das
typeAttribut gibt den Namen des Listenertyps an. Dieser Typ muss von der TraceListener Klasse erben. Verwenden Sie den stark benannten Typnamen, um sicherzustellen, dass der richtige Typ verwendet wird. Weitere Informationen finden Sie im Abschnitt "Verweisen auf einen stark benannten Typ" weiter unten.Einige Typen, die Sie verwenden können, sind:
Ein Microsoft.VisualBasic.Logging.FileLogTraceListener Listener, der in ein Dateiprotokoll schreibt.
Ein System.Diagnostics.EventLogTraceListener Listener, der Informationen in das vom
initializeDataParameter angegebene Computerereignisprotokoll schreibt.Die Listener System.Diagnostics.DelimitedListTraceListener und System.Diagnostics.XmlWriterTraceListener schreiben in die im
initializeDataParameter angegebene Datei.Ein System.Diagnostics.ConsoleTraceListener -Listener, der in die Befehlszeilenkonsole schreibt.
Informationen dazu, wo andere Typen von Protokolllistenern Informationen schreiben, finden Sie in der Dokumentation dieses Typs.
Wenn die Anwendung das Log-Listener-Objekt erstellt, übergibt sie das
initializeDataAttribut als Konstruktorparameter. Die Bedeutung desinitializeDataAttributs hängt vom TraceListener 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 Jeweiligen 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 eines stark benannten Typs lautet wie folgt:
< Typname>, <Assemblyname>, <, ><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 SubDies 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