Einführung in die EventLog-Komponente
Aktualisiert: November 2007
Die Ereignisprotokollierung in Microsoft Windows stellt Ihnen eine Standardlösung bereit, mit der wichtige Software- und Hardwareereignisse zentral durch Anwendungen aufgezeichnet werden können. Im Falle eines Fehlers müssen Systemadministratoren oder Supporttechniker die Ursache des Fehlers diagnostizieren, versuchen verloren gegangene Daten zurückgewinnen und ein neuerliches Auftreten des Fehlers vermeiden. Daher ist es hilfreich, wenn wichtige Ereignisse, wie zu geringer Arbeitsspeicher oder Fehlzugriffe auf einen Datenträger, durch Anwendungen, Betriebssystem und andere Systemdienste aufgezeichnet werden. Der Systemadministrator kann mithilfe des Ereignisprotokolls feststellen, durch welche Umstände der Fehler verursacht wurde und in welchem Kontext er aufgetreten ist.
Windows bietet eine Standardbenutzeroberfläche für die Anzeige dieser Ereignisprotokolle und eine Programmierschnittstelle für die Prüfung von Protokolleinträgen. In Microsoft Visual Basic, Version 6.0, war es möglich, in beschränktem Umfang Schreiboperationen in einigen Ereignisprotokollen auszuführen. Es bestand jedoch keine Möglichkeit, die verfügbaren Protokolle schnell auszulesen oder in anderer Weise mit ihnen zu interagieren.
Mit der EventLog-Komponente können Sie problemlos eine Verbindung mit den Ereignisprotokollen sowohl auf lokalen als auch auf Remotecomputern herstellen und Einträge in diese Protokolle schreiben. Sie können auch Einträge aus bestehenden Protokollen lesen und eigene benutzerdefinierte Ereignisprotokolle erstellen.
Neben der Möglichkeit, Einträge in Ereignisprotokolle zu schreiben und diese zu lesen, können Sie mit dem Server-Explorer für jeden Server, auf den Sie Zugriff haben, eine Liste der Ereignisprotokolle einsehen. Sie können den Knoten Ereignisprotokolle im Server-Explorer erweitern, um eine Liste der vorhandenen Protokolle und die darin aufgezeichneten Ereignisse anzuzeigen. Darüber hinaus können Sie ein spezifisches Ereignisprotokoll aus dem Server-Explorer in den Designer ziehen, um eine Instanz der EventLog-Komponente zu erstellen, deren Eigenschaften standardmäßig einen Zeiger auf das ausgewählte Protokoll enthalten.
Hinweis: |
---|
Sie können auch mit der GetEventLogs-Methode eine Liste aller Ereignisprotokolle auf einem Computer abrufen. |
Hinweis: |
---|
Es bestehen Sicherheitsbeschränkungen, die sich auf die Verwendungsmöglichkeit von Ereignisprotokollen auswirken. Weitere Informationen hierzu finden Sie unter Sicherheitsauswirkungen von Ereignisprotokollen. |
Grundbegriffe in Windows-Ereignisprotokollen
Ein Ereignis bezeichnet in der Windows-Terminologie ein signifikantes Vorkommnis im Betriebssystem oder in einer Anwendung, über das der Benutzer in Kenntnis gesetzt werden muss. Um den Benutzer über kritische Ereignisse zu informieren, wird direkt eine Meldung auf dem Bildschirm angezeigt. Andere Ereignisbenachrichtigungen werden in eines der verschiedenen Ereignisprotokolle geschrieben, in denen die Informationen für die spätere Verwendung aufgezeichnet werden. Die Ereignisprotokolleinträge werden nach den folgenden Kategorien klassifiziert: Fehler, Warnungen, Informationen sowie Erfolgs- oder Fehlerüberwachungen.
Auf einem Computer unter Windows 2000 oder Windows NT 4.0 sind standardmäßig drei Ereignisprotokolle verfügbar:
Ein Systemprotokoll, durch das Ereignisse in Zusammenhang mit Systemkomponenten (z. B. Treiberprobleme) nachverfolgt werden.
Ein Sicherheitsprotokoll, durch das Änderungen der Sicherheitseinstellungen sowie eventuelle Sicherheitsverletzungen nachverfolgt werden.
Ein Anwendungsprotokoll, durch das Ereignisse, die in einer registrierten Anwendung auftreten, nachverfolgt werden.
In anderen Programmen, wie Active Directory, können zusätzlich zu diesen Protokollen eigene Standardprotokolle erstellt werden. Über die Sprachfeatures im System.Diagnostics-Namespace können darüber hinaus eigene benutzerdefinierte Protokolle erstellt werden.
Ereignisse, die in ein Ereignisprotokoll geschrieben wurden, werden einer bestimmten Quelle zugeordnet. Die neue Quelle wird erstellt, bevor Sie in das Ereignisprotokoll schreiben. Sie können mit einem EventLogInstaller-Objekt oder der CreateEventSource-Methode eine neue Quelle konfigurieren. Sie müssen auf dem Computer über Administratorrechte verfügen, um eine neue Ereignisquelle zu erstellen. Sie können die Ereignisquelle mit lokalisierten Ressourcen für die Ereigniskategorie und die Meldungszeichenfolgen registrieren. Die Anwendung kann Ereignisprotokolleinträge mit Ressourcenbezeichnern schreiben, anstatt die eigentlichen Zeichenfolgenwerte anzugeben. Weitere Informationen über das Konfigurieren der Quelle mit Ressourcendateien finden Sie unter der EventLogInstaller-Klasse und der EventSourceCreationData-Klasse.
Auswählen der zu protokollierenden Ereignisse
Die folgenden Fallbeispiele zeigen auf, in welchen Situationen die Ereignisprotokollierung hilfreich sein kann:
Ressourcenprobleme. Falls in einer Anwendung (aufgrund eines Codefehlers oder unzureichenden Arbeitsspeichers) der Arbeitsspeicher knapp wird und die Leistung nachlässt, kann die Protokollierung eines Warnereignisses, das bei Fehlschlagen der Speicherreservierung aufgezeichnet wird, einen entscheidenden Hinweis liefern.
Informationsereignisse. Eine serverbasierte Anwendung (z. B. ein Datenbankserver) zeichnet Benutzeranmeldungen, das Öffnen einer Datenbank oder das Starten einer Dateiübertragung auf. Darüber hinaus kann der Server Fehlerereignisse (wie fehlgeschlagene Dateizugriffe, abgebrochene Hostprozesse usw.), Datenbankfehler oder den Ausgang einer Dateiübertragung protokollieren.
Durch die Ereignisprotokollierung werden Ressourcen wie Festplattenspeicher und Prozessorzeit beansprucht. Der für ein Ereignisprotokoll erforderliche Festplattenspeicher und der zusätzliche Speicherbedarf einer Anwendung, durch die Ereignisse protokolliert werden, richtet sich nach der Menge der zu protokollierenden Informationen. Daher sollten immer nur wichtige Informationen protokolliert werden. Außerdem empfiehlt es sich, Ereignisprotokollaufrufe in einem Fehlerpfad im Code und nicht im Hauptcodepfad anzulegen, um keine Leistungseinbußen zu riskieren.
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Auswerten von Ereignisprotokollen, Ereignisquellen und Einträgen
Konzepte
Typen von Ereignisprotokolleinträgen
EventLog-Programmierarchitektur