Exemplarische Vorgehensweise: Kennenlernen von Ereignisprotokollen, Ereignisquellen und Einträgen
Dieser Dokumentation für die Vorschau nur ist und in späteren Versionen geändert. Leere Themen wurden als Platzhalter eingefügt.]
In dieser exemplarischen Vorgehensweise gelangen Sie über die wichtigsten Funktionsbereiche der Ereignisprotokollierung in Ihrer Anwendung Visual Studio. In dieser exemplarischen Vorgehensweise erfahren Sie, wie Folgendes:
Erstellen einer Komponente EventLog.
Schreiben Sie Code zum Erstellen und Löschen benutzerdefinierter Ereignisprotokolle.
Schreiben von Einträgen unterschiedlicher Typen in dem benutzerdefinierten Protokoll.
Lesen Sie Einträge aus dem benutzerdefinierten Protokoll.
Stellen Sie sicher, dass die Protokolle und Ereignisquellen vorhanden sind.
Löschen von Protokolleinträgen.
Verwenden Sie Server-Explorer, um die Ergebnisse Ihrer Aktionen Ereignisprotokoll zu überprüfen.
Hinweis
Ihr Computer möglicherweise unterschiedliche Namen oder Pfade für einige der Visual Studio-Benutzer Elemente der Benutzeroberfläche in den folgenden Anweisungen angezeigt. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Arbeiten mit Einstellungen.
Erstellen der Benutzeroberfläche
In dieser exemplarischen Vorgehensweise werden Sie eine Windows-Anwendung erstellen und verwenden Sie eine Reihe von Steuerelementen auf, um eine Reihe von Aktionen zur Ereignisprotokollierung zu starten.
Um das Formular und Steuerelemente für Ihre Anwendung erstellen
From the New Project dialog box, create a Visual Basic or Visual C# Windows Application, and name it EventLogApp1.
Fügen Sie dem Formular acht Schaltflächen hinzu, und legen Sie die folgenden Eigenschaften dafür:
Steuerelement
Text-Eigenschaft
Name-Eigenschaft
Button1
Benutzerdefiniertes Protokoll erstellen
CreateLog
Button2
Protokoll löschen
DeleteLog
Button3
Eintrag schreiben
WriteEntry
Button4
Protokoll löschen
ClearLog
Button5
Überprüfen, ob Protokoll vorhanden ist
VerifyLog
Button6
Überprüfen, ob Quelle vorhanden ist
VerifySource
Button7
Quelle entfernen
RemoveSource
Button8
Eintrag Lesen
ReadEntry
Wiederum folgendermaßen Sie für jede Schaltfläche:
Doppelklicken Sie im Designer auf die Schaltfläche um einen Standard-Ereignishandler für diese Schaltfläche zu erstellen. Der Code-Editor angezeigt, und ein Stub für die Schaltfläche Click Ereignis.
Entwurfsansicht wieder und auf die nächste Schaltfläche.
Fortgesetzt werden, wenn Sie einen Standard-Ereignishandler Stub für jede Schaltfläche erstellt haben.
Ziehen Sie von der Registerkarte Komponenten der Toolbox EventLog-Komponente in das Formular.
Im Komponentenfach am unteren Rand des Formulars wird eine EventLog-Komponenteninstanz angezeigt.
Erstellen und löschen ein benutzerdefiniertes Protokoll
In diesem Verfahren verwenden Sie die SourceExists -Methode, ob die Quelle, die Sie verwenden noch nicht vorhanden ist, und rufen Sie dann die CreateEventSource-Methode mit dem Namen eines Protokolls, das nicht vorhanden ist. Da dieses Protokoll nicht vorhanden ist, wird das System ein benutzerdefiniertes Protokoll für Sie erstellen, wenn dieser Code ausgeführt wird.
So erstellen Sie benutzerdefinierte Protokoll
Suchen Sie im Code-Editor, die Prozedur CreateLog_Click.
Geben Sie in den folgenden Code. Das Ereignisprotokoll und die Quelle werden als Paar erstellt, und die Quelle kann nicht bereits vorhanden, bevor das Ereignisprotokoll erstellt wird. Nachdem Sie das Ereignisprotokoll, ist die Komponente EventLog konfiguriert, Zugriff auf das neue Ereignisprotokoll.
' Source cannot already exist before creating the log. If EventLog.SourceExists("Source1") Then EventLog.DeleteEventSource("Source1") EndIf ' Logs and Sources are created as a pair. EventLog.CreateEventSource("Source1", "NewLog1") ' Associate the EventLog component with the new log. EventLog1.Log = "NewLog1" EventLog1.Source = "Source1"
// Source cannot already exist before creating the log. if (System.Diagnostics.EventLog.SourceExists("Source1")) { System.Diagnostics.EventLog.DeleteEventSource("Source1"); } // Logs and Sources are created as a pair. System.Diagnostics.EventLog.CreateEventSource("Source1", "NewLog1"); // Associate the EventLog component with the new log. eventLog1.Log = "NewLog1"; eventLog1.Source = "Source1";
Sicherheitshinweis Wenn Sie ein Ereignisprotokoll erstellen, müssen Sie entscheiden, was tun, wenn die Ressource bereits vorhanden ist.Prozess einem bösartigen möglicherweise wurden bereits erstellt, das Ereignisprotokoll und Zugriff auf ihn haben.Wenn Sie Daten speichern im Ereignis Protokoll, die Daten an den anderen Prozess zur Verfügung stehen.
So löschen Sie ein benutzerdefiniertes Protokoll
Suchen Sie im Code-Editor, die Prozedur DeleteLog_Click.
Geben Sie in den folgenden Code:
If EventLog.Exists("NewLog1") Then EventLog.Delete("NewLog1") EndIf
if (System.Diagnostics.EventLog.Exists("NewLog1")) { System.Diagnostics.EventLog.Delete("NewLog1"); }
Schreiben von Einträgen in das Protokoll
In diesem Verfahren verwenden Sie die Komponenteninstanz EventLog erstellten um Einträge in das Protokoll zu schreiben. Dazu konfigurieren Sie zuerst die Komponente, die Quellzeichenfolge verwenden, die Sie gerade erstellt haben. Geben Sie dann zwei Einträge schreiben an: ein Informationsereignis und ein Fehlerereignis.
Um Einträge in das Protokoll schreiben
Suchen Sie im Code-Editor, die Prozedur WriteEntry_Click.
Geben Sie in den folgenden Code. Dieser Code verwendet die überladene WriteEntry-Methode, um in das Ereignisprotokoll zu schreiben. Das zweite angezeigte Formular können Sie den Typ der Nachricht angeben. Wenn Sie die Einträge mithilfe des Server-Explorers in der "Testen des Codes" anzeigenAbschnitt weiter unten in diesem Thema die verschiedenen Arten von Posten sind durch unterschiedliche Symbole gekennzeichnet.
EventLog1.WriteEntry("This is an informational message") EventLog1.WriteEntry("This is an error message", Diagnostics.EventLogEntryType.Error)
eventLog1.WriteEntry("This is an informational message"); eventLog1.WriteEntry("This is an error message", System.Diagnostics.EventLogEntryType.Error);
Protokolleinträge löschen
In diesem Verfahren verwenden Sie die Clear-Methode entfernen Sie vorhandene Einträge aus dem benutzerdefinierten Protokoll.
Deaktivieren Sie Protokolleinträge
Suchen Sie im Code-Editor, die Prozedur ClearLog_Click.
Rufen Sie die Clear -Methode, in der EventLog-Komponenteninstanz auf:
EventLog1.Clear()
eventLog1.Clear();
Überprüfen von Protokollen und Quellen
In diesem Verfahren erstellen Sie zwei Prozeduren: eine überprüft, dass das benutzerdefinierte Protokoll vorhanden ist und eine, die überprüft, dass die Quellzeichenfolge vorhanden ist. Diese Verfahren werden verwendet, um die Ergebnisse verschiedener Aktionen testen, die Sie beim Ausführen des Projekts ausführen.
Um zu überprüfen, dass das benutzerdefinierte Protokoll vorhanden ist
Suchen Sie im Code-Editor, die Prozedur VerifyLog_Click.
Erstellen Sie ein Meldungsfeld an, die auswertet, ob das angegebene Ereignisprotokoll vorhanden ist, und True oder False ausgibt. Verwenden Sie diesen Code:
Dim logExists AsBoolean = EventLog.Exists("NewLog1") MessageBox.Show("Does the log exist? " & logExists.ToString())
bool logExists = System.Diagnostics.EventLog.Exists("NewLog1"); MessageBox.Show("Does the log exist? " + logExists.ToString());
Um sicherzustellen, dass die Quelle vorhanden ist
Suchen Sie im Code-Editor, die Prozedur VerifySource_Click.
Erstellen Sie ein Meldungsfeld an, die auswertet, ob die angegebene Quelle vorhanden ist, und True oder False ausgibt. Verwenden Sie diesen Code:
Dim sourceExists AsBoolean = EventLog.SourceExists("Source1") MessageBox.Show("Does the source exist? " & sourceExists.ToString())
bool sourceExists = System.Diagnostics.EventLog.SourceExists("Source1"); MessageBox.Show("Does the source exist? " + sourceExists.ToString());
Entfernen von Datenquellen
In dieser Prozedur schreiben Sie Code zum Löschen einer Quellzeichenfolge. Zu diesem Zweck zunächst überprüfen Sie, ob die betreffende Quelle (Source1) vorhanden ist, und rufen Sie die DeleteEventSource-Methode auf, um ihn zu entfernen.
Um die Ereignisquelle entfernen, die Sie erstellt haben
Suchen Sie im Code-Editor, die Prozedur RemoveSource_Click.
Fügen Sie den folgenden Code hinzu:
If EventLog.SourceExists("Source1") Then EventLog.DeleteEventSource("Source1") EndIf
if (System.Diagnostics.EventLog.SourceExists("Source1")) { System.Diagnostics.EventLog.DeleteEventSource("Source1"); }
Lesen von Einträgen
In dieser Prozedur schreiben Sie Code zum Durchlaufen des Ereignisprotokolls Einträge Auflistung und die vorhandenen Meldungen im Protokoll anzeigen.
Einträge aus dem benutzerdefinierten Protokoll lesen erstellen
Suchen Sie im Code-Editor, die Prozedur ReadEntry_Click.
Fügen Sie den folgenden Code hinzu:
Dim entry As EventLogEntry If EventLog1.Entries.Count > 0 ThenForEach entry In EventLog1.Entries System.Windows.Forms.MessageBox.Show(entry.Message) NextElse MessageBox.Show("There are no entries in the log.") EndIf
if (eventLog1.Entries.Count > 0) { foreach (System.Diagnostics.EventLogEntry entry in eventLog1.Entries) { MessageBox.Show(entry.Message); } } else { MessageBox.Show("There are no entries in the log."); }
Testen des Codes
In diesem Abschnitt verwenden Sie die Server-Explorer, um die Ergebnisse des Codes zu überprüfen.
Um Server-Explorer starten
Greifen Sie über das Ansicht Menü , Server-Explorer.
Erweitern Sie den Knoten für den aktuellen Server, und dann erweitern Sie die Ereignisprotokollknoten darunter.
Zum Erstellen und Ausführen Ihrer Anwendung
Speichern Sie die Dateien, und drücken Sie F5, um erstellen und starten Sie Ihr Projekt. Das Formular wird mit den acht erstellten Schaltflächen angezeigt.
Klicken Sie Schaltfläche benutzerdefiniertes Protokoll erstellen.
Hinweis
Sie müssen entsprechende Berechtigungen an den Server verfügen, auf denen die Anwendung ausgeführt, wird um Windows-Ereignisprotokolle erstellen.Wenn Sie an dieser Stelle ein Sicherheitsfehler erhalten, wenden Sie sich den Systemadministrator.
Kehren Sie das Produkt noch im Ausführungsmodus zurück, und klicken Sie mit der rechten Maustaste auf den Knoten EreignisprotokolleServer-Explorer.
Klicken Sie auf aktualisieren.
Stellen Sie sicher, dass das Protokoll NewLog1 jetzt unter der Ereignisprotokollknoten angezeigt wird.
Erstellen, löschen und überprüfen benutzerdefinierte Protokolle testen
Ihre ausgeführt Formular Rückkehren Sie und klicken Sie auf die Schaltfläche mit den überprüfen Protokoll vorhanden ist für.
Eine Eingabeaufforderung sollte mit den Text als "Wahr" angezeigt werden.
Klicken Sie auf die Schaltfläche Protokoll löschen , und klicken Sie auf überprüfen, ob Protokoll vorhanden ist erneut.
Dieses Mal sollte die Eingabeaufforderung "False" sagen
Klicken Sie auf die benutzerdefiniertes Protokoll erstellen Schaltfläche erneut, um das Protokoll neu zu erstellen.
So testen Sie Einträge schreiben und Lesen von Einträgen aus dem benutzerdefinierten Protokoll
Klicken Sie im Formular auf die Eintrag schreiben-Schaltfläche.
Server-Explorergreifen Sie und erweitern Sie das Protokoll NewLog1.
Erweitern Sie den Source1 Knoten darunter.
Nun sehen, dass sich zwei Einträge hinzugefügt wurden. Eine haben ein Symbol, dass es ein informativen Eintrag ist und eine ein Symbol, der angibt haben, dass es einen Fehler.
Das Formular Rückkehren Sie , und klicken Sie auf die Schaltfläche Eintrag Lesen.
Sie erhalten zwei Aufforderungen: eine enthält den Informationseintrag und den Fehler-Eintrag enthält.
Hinweis
Wenn Sie die Schaltfläche Eintrag schreiben mehrmals geklickt haben, werden Sie mehrere Eingabeaufforderungen haben.
So testen Sie das Protokoll löschen
Klicken Sie im Formular auf die Protokoll löschen-Schaltfläche.
Server-Explorerklicken Sie mit der rechten Maustaste auf den NewLog1 Knoten; klicken Sie dann auf aktualisieren.
Nun sehen, dass das Protokoll nicht mehr Einträge enthält.
So testen Sie die Quellzeichenfolge entfernen
Klicken Sie im Formular auf die Ereignisquelle entfernen-Schaltfläche.
Klicken Sie auf überprüfen, ob Quelle vorhanden ist Schaltfläche. Sie sollte eine Meldung angezeigt werden, "False"um anzugeben, dass die Quelle Source1 nicht mehr vorhanden.
Klicken Sie auf die Schaltfläche Eintrag schreiben.
Hinweis
Diese Aktion können Sie Einträge in das Protokoll schreiben da WriteEntry-Methode die Quelle festgelegt wird, wenn er nicht vorhanden ist.
Server-Explorerklicken Sie mit der rechten Maustaste auf den NewLog1 Knoten; klicken Sie dann auf aktualisieren. Sie sollten zwei Einträge im Protokoll angezeigt werden.
Klicken Sie erneut auf die überprüfen, ob Quelle vorhanden ist Schaltfläche. Sie sollte eine Meldung angezeigt werden, "True"um anzugeben, dass die Quelle Source1 vorhanden ist.
Optional, möchten Sie die DeleteLog Schaltfläche klicken, wenn Sie durch Tests sind. Das Protokoll NewLog1 und die Quelle Source1 entfernt sodass keine dauerhaften Änderungen an der Systemkonfiguration.
Siehe auch
Weitere Ressourcen
Exemplarische Vorgehensweisen zur Systemüberwachung
Protokollieren von Anwendungs-, Server- und Sicherheitsereignissen