Logs in Windows Ereignisanzeige schreiben

Eine gängige Anforderung kann es sein, Anwendungsfehler in die Windows Ereignisanzeige zu schreiben. Das kann häufig der Fall sein, wenn man beispielsweise mit Legacy Anwendungen arbeitet.

In diesem Beitrag zeige ich, wie man aus einer C#/.NET Framework 4.6+ Webanwendung in die Ereignisanzeige schreibt. Hier wird ein ASMX Webservice verwendet, der auf IIS und einer Windows Server VM gehostet ist.

Konfigurieren des Loggers

Es besteht die Möglichkeit, direkt mithilfe der EventLog Klasse zu arbeiten:

try
{
   System.Diagnostics.EventLog.WriteEntry("Application Error", "EventLog Test", EventLogEntryType.Error);
}
catch (Exception ex)
{
    // ...
}

“Application Error” ist die Ereignisquelle, hier wird eine Systemvariable verwendet. Die bestehenden Ereignisquellen Variablen können aus der Registry ausgelesen werden, unter dem Knoten EventLog – Application.

Eine eigene Ereignisquelle unter dem Knoten Application kann aber leicht erstellt werden. Dafür einfach dieses Powershellscript verwenden:

New-EventLog -LogName Application -Source MyEventSource

Die neue Ereignisquelle kann dann mittels Powershell getestet werden:

Write-EventLog -LogName Application -Source MyEventSource -EntryType Info -EventId 1234 -Category 1 -Message "Test" 

Im C# Code könnte dann anstelle von “Application Error”, “MyEventSource” als Ereignisquelle verwendet werden.

Wen das Loging aus einer Consolenanwendung heraus geschrieben werden soll, sind meist keine besonderen Berechtigungen notwendig, um in die Windows Ereignisanzeige schreiben zu können.