Samstag, 13. November 2010

In das Windows Ereignisprotokoll schreiben

Im Windows Ereignisprotokoll zeichnet Windows viele systemrelevante Informationen (z.B. das Starten / Beenden von Diensten, um nur eins von unzähligen Anwendungsgebieten zu nennen) auf.
Mit C# können wir in dieses Protokoll ganz leicht eigene Einträge über die Klasse System.Diagnostics.EventLog schreiben, um beispielsweise den Programmfluss zu überwachen.
Zuerst müssen wir hierfür (sofern noch nicht vorhanden) eine neue Quelle im Ereignisprotokoll anlegen.
Die Quelle gibt an, durch welche Anwendung etc. der Eintrag geschrieben wurde.
Gibt es noch keine Einträge von der Anwendung, wird die Quelle also neu angelegt, müssen wir spezifizieren, zu welcher Kategorie das Programm zählt. Im Ereignisprotokoll gibt es beispielsweise die Kategorien "Anwendung", "Sicherheit", "Installation" etc.
Das letztendliche Schreiben des Ereignisses führt die Methode WriteEntry() durch. Diese erwartet als 1. Parameter die Quelle, als 2. die Kategorie und optional als 3. den Typ des Ereignisses (z.B. Warnung, Information, Fehler ...).
Zum Schreiben in das Ereignisprotokoll wird das Programm wahrscheinlich (unter Windows Vista und 7) Administratorrechte benötigen, wie man die eigene Anwendung damit ausstattet könnt ihr hier lesen.
Das folgende Codebeispiel schreibt einen kurzen Informationstext in die Windows Ereignisanzeige (using System.Diagnostics; wird vorrausgesetzt):

        private void Form1_Load(object sender, EventArgs e)
        {
            string Source;
            string LogType;
            string LogEvent;

            Source = "Ereignisprotokoll C# Demo";
            LogType = "Application";
            LogEvent = "Diesen C# Blog finde ich super.";

            if (!EventLog.SourceExists(Source))
                EventLog.CreateEventSource(Source, LogType);

            EventLog.WriteEntry(Source, LogEvent, EventLogEntryType.Information);
        }

Keine Kommentare:

Kommentar veröffentlichen