Wie automatisiert man nun den Versand von Fehlermeldungen? Genau hier kommt das Ereignis EventLog.EntryWritten ins Spiel. Mithilfe dieses Ereignisses lassen sich bestimmte Aktionen auslösen, die sich am Ereignistyp und anderen Variablen orientieren.
Das EntryWritten-Ereignis soll hier dem Versenden einer E-Mail dienen. Sie wird gesendet, wenn Fehlermeldungen im Ereignisprotokoll auftauchen. Das erfordert zunächst die Auswahl des EntryWritten-Ereignisses:
log.EntryWritten += new EntryWrittenEventHandler(log_EntryWritten);
Damit wäre das Ereignis ausgewählt. Die Auslösung des Mail-Versands erfolgt jedoch nur, wenn EnableRaisingEvents im EventLog-Objekt auf „true“ gesetzt ist:
log.EnableRaisingEvents = true;
Da jetzt das Ereignis ausgewählt und aktiviert ist, folgt nun das Schreiben des Event-Handlers. An dieser Stelle wird der Eintrag untersucht, um festzustellen, ob es sich dabei tatsächlich um eine Fehlermeldung handelt, und dann zu entscheiden, wie damit zu verfahren ist.
Der obige Code untersucht die Eigenschaft EventLogEntry.EntryType. Falls der Eintragstyp Error lautet, wird eine E-Mail mithilfe der im Namensraum System.Mail enthaltenen Klassen MailMessage und SmtpClient gesendet. Ganz offensichtlich handelt es sich dabei um einen sehr klar strukturierten Code, der auf einfacher .NET-Framework-Funktionalität beruht.
Das Ereignis EntryWritten lässt sich freilich auch für andere Aufgaben verwenden. Zum Beispiel können alle Einträge in das Ereignisprotokoll abgefangen und in einer Nachrichtenschleife zur Helpdesk-Verarbeitung gesendet werden. Es besteht sogar die Möglichkeit, Ereignisse aus mehreren Ereignisprotokollen zu sammeln, die Priorität der Einträge zu bestimmen, und dann die Einträge nach Priorität an andere Ereignisprotokolle weiterzuleiten. Das wäre dann im Endeffekt ein Ereignisprotokoll-Router.
Wichtige Hinweise zu Ereignisprotokollen
Sicherheit: Unterschiedliche Protokolle können unterschiedliche Sicherheitsstufen besitzen. Beim Ausführen eines solchen Codes über einen Windows-Service muss sichergestellt sein, dass der Benutzer, unter dem der Service läuft, auch Zugang zu dem überwachten Ereignisprotokoll hat.
Duplizierte Fehlermeldungen: Es kann vorkommen, dass dieselbe Anwendung immer wieder die gleiche Fehlermeldung an das Ereignisprotokoll ausgibt. Bei Verwendung des Codes in einer Produktionsumgebung, sollte dafür gesorgt werden, dass keine unkontrollierten Warnmeldungen die verwendeten E-Mail-Adressen überfluten. Das lässt sich erreichen, indem Warnmeldungen nur dann abgehen, wenn die angegebene Quelle (EventLogEntry.Source) über einen bestimmten Zeitraum keinen Fehler ausgegeben hat.
Neueste Kommentare
Noch keine Kommentare zu So geht’s: Fehlermeldungen per E-Mail weiterleiten
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.