Exemplarische Vorgehensweise: Filterung der Ausgaben von "My.Application.Log" (Visual Basic)
Artikel
In dieser exemplarischen Vorgehensweise wird erläutert, wie Sie die standardmäßige Protokollfilterung für das My.Application.Log-Objekt ändern und dabei festlegen können, welche Informationen vom Log-Objekt an die Listener weitergeleitet werden und welche Informationen die Listener speichern. Sie können das Protokollierungsverhalten auch nach dem Erstellen einer Anwendung noch ändern, da die Konfigurationsinformationen in der Konfigurationsdatei der Anwendung gespeichert werden.
Erste Schritte
Alle von My.Application.Log geschriebenen Meldungen verfügen über einen zugeordneten Schweregrad, der in Filtermechanismen zur Steuerung der Protokollausgaben verwendet wird. In dieser Beispielanwendung werden My.Application.Log-Methoden zum Schreiben mehrerer Protokollmeldungen mit verschiedenen Schweregraden verwendet.
So erstellen Sie die Beispielanwendung
Öffnen Sie ein neues Visual Basic-Windows-Anwendungsprojekt.
Fügen Sie Form1 eine Schaltfläche mit dem Namen Button1 hinzu.
Fügen Sie im Click-Ereignishandler für Button1 folgenden Code hinzu:
Standardmäßig wird die Protokolldateiausgabe beim Schließen der Anwendung gelöscht.
Im oben stehenden Beispiel werden für den zweiten Aufruf der WriteEntry-Methode und den Aufruf der WriteException-Methode Protokollausgaben erzeugt, für den ersten und den letzten Aufruf der WriteEntry-Methode jedoch nicht. Dies liegt daran, dass die Schweregrade von WriteEntry und WriteException "Information" bzw. "Error" sind. Beide sind bei der Standardprotokollfilterung des My.Application.Log-Objekts zulässig. Für Ereignisse mit den Schweregraden "Start" und "Stop" wird keine Protokollausgabe erzeugt.
Filterung für alle My.Application.Log-Listener
Für das My.Application.Log-Objekt wird ein SourceSwitch mit dem Namen DefaultSwitch verwendet, um festzulegen, welche Meldungen das Objekt aus der WriteEntry-Methode und der WriteException-Methode an die Protokolllistener weiterleitet. Sie können DefaultSwitch in der Konfigurationsdatei der Anwendung konfigurieren, indem Sie dessen Wert auf einen der SourceLevels-Enumerationswerte setzen. Der Standardwert ist "Information".
In der nachfolgenden Tabelle werden die Schweregrade aufgeführt, die bei einer bestimmten Einstellung für DefaultSwitch erforderlich sind, damit Log eine Meldung an die Listener schreibt.
DefaultSwitch-Wert
Erforderlicher Schweregrad für Weiterleitung der Meldung
Critical
Critical
Error
Critical oder Error
Warning
Critical, Error oder Warning
Information
Critical, Error, Warning oder Information
Verbose
Critical, Error, Warning, Information oder Verbose
ActivityTracing
Start, Stop, Suspend, Resume oder Transfer
All
Alle Meldungen werden weitergeleitet.
Off
Alle Meldungen werden blockiert.
Hinweis
Für die WriteEntry-Methode und die WriteException-Methode ist jeweils eine Überladung vorhanden, bei der kein Schweregrad angegeben wird.Der implizite Schweregrad für die WriteEntry-Überladung ist "Information", und der implizite Schweregrad für die WriteException-Überladung ist "Error".
In dieser Tabelle werden die im vorhergehenden Beispiel gezeigten Protokollausgaben erläutert: Mit der Standardeinstellung "Information" für DefaultSwitch werden nur für den zweiten Aufruf der WriteEntry-Methode und den Aufruf der WriteException-Methode Protokollausgaben erzeugt.
So protokollieren Sie ausschließlich Ereignisse aus der Aktivitätsablaufverfolgung
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:
Klicken Sie im Menü Projekt auf Neues Element hinzufügen.
Klicken Sie im Dialogfeld Neues Element hinzufügen auf Anwendungskonfigurationsdatei.
Klicken Sie auf Hinzufügen.
Suchen Sie den <switches>-Abschnitt innerhalb des <system.diagnostics>-Abschnitts, der sich wiederum im <configuration>-Abschnitt auf der obersten Ebene befindet.
Suchen Sie das Element, das der Auflistung von Schaltern den Eintrag DefaultSwitch hinzufügt. Dieses Element sieht ähnlich wie das Folgende aus:
<add name="DefaultSwitch" value="Information" />
Ändern Sie den Wert des value-Attributs in "ActivityTracing".
Der Inhalt der Datei app.config sollte dem folgenden XML-Ausschnitt ähnlich sein:
Die Anwendung schreibt die folgenden Informationen in die Debugausgabe und die Protokolldatei der Anwendung:
DefaultSource Start: 4 : Entering Button1_Click
DefaultSource Stop: 5 : Leaving Button1_Click
Schließen Sie die Anwendung.
Ändern Sie den Wert des value-Attributs zurück in "Information".
Hinweis
Der DefaultSwitch-Schalter wirkt sich nur auf My.Application.Log aus.Das Verhalten der Trace-Klasse und der Debug-Klasse von .NET Framework wird dadurch nicht beeinflusst.
Filterung für einzelne My.Application.Log-Listener
Im vorhergehenden Beispiel wurde gezeigt, wie die Filterung für alle My.Application.Log-Ausgaben geändert werden kann. In diesem Beispiel wird das Anpassen der Filterung für einen einzelnen Protokolllistener erläutert. In der Standardeinstellung sind einer Anwendung zwei Listener zugeordnet, die in die Debugausgabe und die Protokolldatei der Anwendung schreiben.
In der Konfigurationsdatei kann das Verhalten der Protokolllistener durch Angabe jeweils eines Filters festgelegt werden. Dies entspricht einem Schalter für My.Application.Log. Ein Protokolllistener gibt nur dann eine Meldung aus, wenn der Schweregrad der Meldung sowohl in Bezug auf den DefaultSwitch des Protokolls als auch in Bezug auf den Filter des betreffenden Protokolllisteners ausreichend ist.
In diesem Beispiel wird veranschaulicht, wie die Filterung für einen neuen Debuglistener konfiguriert und dieser dem Log-Objekt hinzugefügt werden kann. Der Standarddebuglistener sollte aus dem Log-Objekt entfernt werden, um sicherzustellen, dass die Debugmeldungen vom neuen Debuglistener stammen.
So protokollieren Sie ausschließlich Ereignisse aus der Aktivitätsablaufverfolgung
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:
Klicken Sie im Menü Projekt auf Neues Element hinzufügen.
Klicken Sie im Dialogfeld Neues Element hinzufügen auf Anwendungskonfigurationsdatei.
Klicken Sie auf Hinzufügen.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf app.config. Wählen Sie Öffnen aus.
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).
Fügen Sie dem <listeners>-Abschnitt dieses Element hinzu:
<!-- Remove the default debug listener. -->
<remove name="Default"/>
<!-- Add a filterable debug listener. -->
<add name="NewDefault"/>
Suchen Sie den <sharedListeners>-Abschnitt im <system.diagnostics>-Abschnitt im <configuration>-Abschnitt auf der obersten Ebene.
Fügen Sie diesem <sharedListeners>-Abschnitt dieses Element hinzu: