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

  1. From the New Project dialog box, create a Visual Basic or Visual C# Windows Application, and name it EventLogApp1.

  2. 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

  3. Wiederum folgendermaßen Sie für jede Schaltfläche:

    1. 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.

    2. Entwurfsansicht wieder und auf die nächste Schaltfläche.

    3. Fortgesetzt werden, wenn Sie einen Standard-Ereignishandler Stub für jede Schaltfläche erstellt haben.

  4. 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

  1. Suchen Sie im Code-Editor, die Prozedur CreateLog_Click.

  2. 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";
    
    SicherheitshinweisSicherheitshinweis

    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

  1. Suchen Sie im Code-Editor, die Prozedur DeleteLog_Click.

  2. 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

  1. Suchen Sie im Code-Editor, die Prozedur WriteEntry_Click.

  2. 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

  1. Suchen Sie im Code-Editor, die Prozedur ClearLog_Click.

  2. 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

  1. Suchen Sie im Code-Editor, die Prozedur VerifyLog_Click.

  2. 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

  1. Suchen Sie im Code-Editor, die Prozedur VerifySource_Click.

  2. 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

  1. Suchen Sie im Code-Editor, die Prozedur RemoveSource_Click.

  2. 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

  1. Suchen Sie im Code-Editor, die Prozedur ReadEntry_Click.

  2. 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

  1. Greifen Sie über das Ansicht Menü , Server-Explorer.

  2. Erweitern Sie den Knoten für den aktuellen Server, und dann erweitern Sie die Ereignisprotokollknoten darunter.

Zum Erstellen und Ausführen Ihrer Anwendung

  1. 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.

  2. 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.

  3. Kehren Sie das Produkt noch im Ausführungsmodus zurück, und klicken Sie mit der rechten Maustaste auf den Knoten EreignisprotokolleServer-Explorer.

  4. Klicken Sie auf aktualisieren.

  5. Stellen Sie sicher, dass das Protokoll NewLog1 jetzt unter der Ereignisprotokollknoten angezeigt wird.

Erstellen, löschen und überprüfen benutzerdefinierte Protokolle testen

  1. 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.

  2. 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

  3. 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

  1. Klicken Sie im Formular auf die Eintrag schreiben-Schaltfläche.

  2. Server-Explorergreifen Sie und erweitern Sie das Protokoll NewLog1.

  3. 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.

  4. 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

  1. Klicken Sie im Formular auf die Protokoll löschen-Schaltfläche.

  2. 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

  1. Klicken Sie im Formular auf die Ereignisquelle entfernen-Schaltfläche.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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