Exemplarische Vorgehensweise: Auswerten von Ereignisprotokollen, Ereignisquellen und Einträgen mit Visual J#

In dieser exemplarischen Vorgehensweise werden die wichtigsten Features der Ereignisprotokollierung in der Visual Studio-Anwendung erläutert. Dabei wird Folgendes erläutert:

  • Erstellen einer EventLog-Komponente.
  • Schreiben von Code für das Erstellen und Löschen benutzerdefinierter Ereignisprotokolle.
  • Schreiben von Einträgen unterschiedlicher Typen in das benutzerdefinierte Protokoll.
  • Lesen von Einträgen aus dem benutzerdefinierten Protokoll.
  • Überprüfen des Vorhandenseins von Protokollen und Ereignisquellen.
  • Löschen von Protokolleinträgen.
  • Überprüfen der Ergebnisse der Ereignisprotokollierung mit Hilfe des Server-Explorers.

Erstellen der Benutzeroberfläche

Im Verlauf dieser exemplarischen Vorgehensweise werden Sie ein Windows Form erstellen und verschiedene Steuerelemente darauf anwenden, um eine Reihe von Aktionen zur Ereignisprotokollierung zu starten.

So erstellen Sie ein Formular und Steuerelemente für Ihre Anwendung

  1. Erstellen Sie im Dialogfeld Neues Projekt eine Visual J# Windows-Anwendung, und nennen Sie sie EventLogApp1.

  2. Fügen Sie dem Windows Form acht Schaltflächen hinzu, und legen Sie die folgenden Eigenschaften dafür fest:

    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 Ereignisquelle entfernen RemoveSource
    Button8 Eintrag lesen ReadEntry
  3. Führen Sie für die einzelnen Schaltflächen folgende Schritte aus:

    1. Doppelklicken Sie im Designer auf die Schaltfläche, um einen standardmäßigen Ereignishandler für diese Schaltfläche zu erstellen. Daraufhin werden der Code-Editor und ein Stub für das Click-Ereignis der Schaltfläche angezeigt.
    2. Kehren Sie zur Entwurfsansicht zurück, und doppelklicken Sie auf die nächste Schaltfläche.
    3. Fahren Sie so lange fort, bis Sie für jede Schaltfläche einen standardmäßigen Ereignishandlerstub erstellt haben.
  4. Ziehen Sie in der Toolbox von der Registerkarte Komponenten eine EventLog-Komponente auf das Formular.

    Im Komponentenfach unten auf dem Formular wird eine EventLog-Komponenteninstanz angezeigt.

Erstellen und Löschen eines benutzerdefinierten Protokolls

In dieser Prozedur verwenden Sie die SourceExists-Methode, um zu überprüfen, ob die verwendete Quelle nicht bereits vorhanden ist. Falls Sie vorhanden ist, löschen Sie sie. Rufen Sie dann die CreateEventSource-Methode auf. Bei der Ausführung dieses Codes erstellt das System ein benutzerdefiniertes Protokoll.

So erstellen Sie ein benutzerdefiniertes Protokoll

  1. Fügen Sie im Code-Editor am Anfang der Datei eine import-Anweisung ein, um auf den System.Diagnostics-Namespace zu verweisen.

    // Visual J#
    import System.Diagnostics.*;
    
  2. Suchen Sie die CreateLog_Click-Prozedur.

  3. Geben Sie den folgenden Code ein:

    // Visual J#
    if (!(EventLog.SourceExists("Source1"))) 
    {
       EventLog.CreateEventSource("Source1", "NewLog1");
    }
    else 
    {
       EventLog.DeleteEventSource("Source1");
       EventLog.CreateEventSource("Source1", "NewLog1");
    }
    

So löschen Sie ein benutzerdefiniertes Protokoll

  1. Wechseln Sie im Code-Editor zur DeleteLog_Click-Prozedur.

  2. Geben Sie den folgenden Code ein:

    // Visual J#
    if (EventLog.SourceExists("Source1"))
    {
       EventLog.Delete("NewLog1");
    }
    

Schreiben von Einträgen in das Protokoll

In dieser Prozedur schreiben Sie anhand der erstellten EventLog-Komponenteninstanz Einträge in das Protokoll. Dafür müssen Sie die Komponente zunächst so konfigurieren, dass sie die oben erstellte Quellzeichenfolge verwendet. Anschließend geben Sie zwei zu schreibende Einträge an: ein Informationsereignis und ein Fehlerereignis.

So schreiben Sie Einträge in das Protokoll

  1. Wechseln Sie im Code-Editor zur WriteEntry_Click-Prozedur.

  2. Legen Sie die Source-Eigenschaft für die Instanz der EventLog-Komponente auf die beim Erstellen des benutzerdefinierten Protokolls verwendete Quellzeichenfolge Source1 fest. Verwenden Sie den folgenden Code:

    // Visual J#
    eventLog1.set_Source("Source1");
    
  3. Rufen Sie die WriteEntry-Methode auf, und geben Sie eine Textmeldung ein. Verwenden Sie den folgenden Code:

    // Visual J#
    eventLog1.WriteEntry("This is an informational message");
    
  4. Rufen Sie die WriteEntry-Methode erneut auf, und geben Sie anhand des überladenen Formulars sowohl eine Fehlermeldung als auch den Fehlertyp an. Verwenden Sie den folgenden Code:

    // Visual J#
    eventLog1.WriteEntry("This is an error message", EventLogEntryType.Error);
    

Löschen von Protokolleinträgen

In dieser Prozedur entfernen Sie anhand der erstellten Clear-Methode vorhandene Einträge aus dem benutzerdefinierten Protokoll.

So löschen Sie Protokolleinträge

  1. Wechseln Sie im Code-Editor zur ClearLog_Click-Prozedur.

  2. Rufen Sie die Clear-Methode für die EventLog-Komponenteninstanz auf:

    // Visual J#
    eventLog1.Clear();
    

Überprüfen des Vorhandenseins von Protokollen und Quellen

In dieser Prozedur erstellen Sie zwei Prozeduren. Mit der ersten können Sie prüfen, ob das benutzerdefinierte Protokoll vorhanden ist. Mit der anderen Prozedur lässt sich das Vorhandensein der Quellzeichenfolge überprüfen. Anhand dieser Prozeduren werden die Ergebnisse verschiedener Aktionen getestet, die Sie beim Ausführen des Projekts durchführen.

So überprüfen Sie, ob das benutzerdefinierte Protokoll vorhanden ist

  1. Wechseln Sie im Code-Editor zur VerifyLog_Click-Prozedur.

  2. Erstellen Sie ein Meldungsfeld, das überprüft, ob das angegebene Ereignisprotokoll vorhanden ist, und dafür entweder True oder False ausgibt. Verwenden Sie den folgenden Code:

    // Visual J#
    MessageBox.Show("" + EventLog.Exists("NewLog1"));
    

So überprüfen Sie, ob die Quelle vorhanden ist

  1. Wechseln Sie im Code-Editor zur VerifySource_Click-Prozedur.

  2. Erstellen Sie ein Meldungsfeld, das überprüft, ob die angegebene Quelle vorhanden ist, und dafür entweder true oder false ausgibt. Verwenden Sie den folgenden Code:

    // Visual J#
    MessageBox.Show("" + EventLog.SourceExists("Source1"));
    

Entfernen von Quellen

In dieser Prozedur schreiben Sie Code zum Löschen einer Quellzeichenfolge. Dafür müssen Sie zunächst sicherstellen, dass die betreffende Quelle (Source1) vorhanden ist. Anschließend rufen Sie die DeleteEventSource-Methode auf, um Source1 zu entfernen.

So entfernen Sie die erstellte Ereignisquelle

  1. Wechseln Sie im Code-Editor zur RemoveSource_Click-Prozedur.

  2. Fügen Sie den folgenden Code hinzu:

    // Visual J#
    if (EventLog.SourceExists("Source1"))
    {
       EventLog.DeleteEventSource("Source1");
    }
    

Lesen von Einträgen

In dieser Prozedur schreiben Sie Code, mit dem Sie die Auflistung der Einträge im Ereignisprotokoll durchlaufen und die vorhandenen Meldungen im Protokoll anzeigen.

So lesen Sie Einträge aus dem von Ihnen erstellten benutzerdefinierten Protokoll

  1. Wechseln Sie im Code-Editor zur ReadEntry_Click-Prozedur.

  2. Fügen Sie den folgenden Code hinzu:

    // Visual J#
    int count = eventLog1.get_Entries().get_Count();
    for (int i = 0; i < count; i++)
    {
       MessageBox.Show(eventLog1.get_Entries().get_Item(i).get_Message());
    }
    

Testen des Codes

Im vorliegenden Abschnitt überprüfen Sie die Ergebnisse des Codes mit dem Server-Explorer.

Starten des Server-Explorers

  1. Den Server-Explorer rufen Sie über das Menü Ansicht auf.
  2. Erweitern Sie zunächst den Knoten des aktuellen Servers und dann den darunter befindlichen Knoten Ereignisprotokolle.

Erstellen und Ausführen der Anwendung

  1. Speichern Sie die Dateien, und drücken Sie F5, um das Projekt zu erstellen und zu starten. Daraufhin wird das Formular mit den acht erstellten Schaltflächen angezeigt.

  2. Klicken Sie auf die Schaltfläche Benutzerdefiniertes Protokoll erstellen.

    **Hinweis   **Um Windows-Ereignisprotokolle erstellen zu können, müssen Sie die entsprechenden Rechte auf dem Server besitzen, auf dem Ihre Anwendung ausgeführt wird. Wenn an dieser Stelle ein Sicherheitsfehler angezeigt wird, wenden Sie sich an Ihren Systemadministrator.

  3. Kehren Sie zum Produkt zurück, während Sie sich im Ausführungsmodus befinden, und klicken Sie im Server-Explorer mit der rechten Maustaste auf den Knoten Ereignisprotokolle.

  4. Klicken Sie auf Aktualisieren.

  5. Überprüfen Sie, ob das Protokoll NewLog1 im Knoten Ereignisprotokolle angezeigt wird.

So testen, erstellen, löschen und überprüfen Sie benutzerdefinierte Protokolle

  1. Kehren Sie zum Formular zurück, das gerade ausgeführt wird, und klicken Sie auf die Schaltfläche Überprüfen, ob Protokoll vorhanden ist.

    Eine Eingabeaufforderung sollte nun "true" ausgeben.

  2. Klicken Sie auf die Schaltfläche Protokoll löschen und anschließend erneut auf Überprüfen, ob Protokoll vorhanden ist.

    Die Eingabeaufforderung sollte nun "false" ausgeben.

  3. Klicken Sie erneut auf die Schaltfläche Benutzerdefiniertes Protokoll erstellen, um das Protokoll neu zu erstellen.

So testen Sie das Schreiben von Einträgen in und das Lesen von Einträgen aus dem benutzerdefinierten Protokoll

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

  2. Rufen Sie den Server-Explorer auf, und erweitern Sie das Protokoll NewLog1.

  3. Erweitern Sie den Knoten Source1 darunter.

    Das Protokoll sollte nun um zwei Einträge erweitert sein. Einer der beiden Einträge ist mit einem Symbol versehen, das angibt, dass es sich um einen Informationseintrag handelt. Das Symbol des anderen Eintrags gibt an, dass es sich hier um einen Fehler handelt.

  4. Kehren Sie zum Formular zurück, und klicken Sie auf die Schaltfläche Eintrag lesen.

    Daraufhin werden zwei Eingabeaufforderungen angezeigt, von denen eine den Informationseintrag und die andere den Fehlereintrag enthält.

    **Hinweis   **Wenn Sie mehrmals auf die Schaltfläche Eintrag schreiben geklickt haben, werden mehrere Eingabeaufforderungen angezeigt.

So testen Sie das Löschen des Protokolls

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

  2. Klicken Sie im Server-Explorer mit der rechten Maustaste auf den Knoten NewLog1 und anschließend auf Aktualisieren.

    Das angezeigte Protokoll enthält nun keine Einträge mehr.

So testen Sie das Entfernen der Quellzeichenfolge

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

  2. Klicken Sie auf die Schaltfläche Überprüfen, ob Quelle vorhanden ist. Daraufhin sollte eine Eingabeaufforderung angezeigt werden, die False lautet und damit anzeigt, dass die Quelle Source1 nicht mehr vorhanden ist.

  3. Klicken Sie auf die Schaltfläche Eintrag schreiben.

    **Hinweis   **Die WriteEntry-Methode legt die Quelle fest, wenn zurzeit keine vorhanden ist. Dadurch gibt Ihnen dieser Vorgang die Berechtigung, Einträge in das Protokoll zu schreiben.

  4. Klicken Sie im Server-Explorer mit der rechten Maustaste auf den Knoten NewLog1 und anschließend auf Aktualisieren. Im Protokoll sollten zwei Einträge angezeigt werden.

  5. Klicken Sie erneut auf die Schaltfläche Überprüfen, ob Quelle vorhanden ist. Daraufhin sollte eine Eingabeaufforderung angezeigt werden, die true angibt und damit anzeigt, dass die Quelle Source1 vorhanden ist.

  6. Sie können nach dem Testen auch auf die Schaltfläche Ereignisquelle entfernen klicken. Damit entfernen Sie die Quelle Source1 aus der Registrierung, so dass keine dauerhaften Änderungen an der Systemkonfiguration vorgenommen werden.

Siehe auch

Exemplarische Vorgehensweisen zur Systemüberwachung | Protokollieren von Anwendungs-, Server- und Sicherheitsereignissen | Exemplarische Vorgehensweisen für Framework-Dienstkomponenten