09 June 2009 ASP.NET, ASP.NET MVC, Elmah, Exceptions, HowTo Robert Muehsig

imageIch habe bereits mehrfach über Errorlogging (und Logging im Allgemeinen) geschrieben, jedoch habe ich heute in einem ASP.NET MVC Projekt eine nette Open Source Library eingebaut: ELMAH - Error Logging Modules and Handlers for ASP.NET.

Was kann ELMAH?

Jeder ASP.NET Entwickler wird bereits einmal den Yellow Screen of Death gesehen haben:

image

Meistens tritt es dann auf, wenn der Kunde die Webseite ansieht und man selber schwer nachvollziehen kann, was nun eigentlich der Fehler war.

Mit ELMAH können unbehandelte Exceptions sehr leicht geloggt (als XML, in Oracle/MSSQL/... werden und die Entwickler können ebenfalls benachrichtigt werden (Via Email oder Twitter ;) ).
Desweiteren steht eine RSS Ansicht der Fehler zur Verfügung.

Scott Hanselman hat in seinem Blog auch eine gute Zusammenfassung geschrieben.

Wie bindet man ELMAH in ASP.NET MVC ein?

Kurz gesagt: Die DLL runterladen, die Web.config anpassen & das Routing ändern. Die längere Version steht hier Schritt für Schritt auch auf der Projektseite:

http://code.google.com/p/elmah/wiki/MVC

Wenn man es im IIS7 hosted sollte man neben den system.web Einstellungen ebenfalls die system.webServer Einstellungen editieren und dort ebenfalls die Handler & Module hinzufügen.

HandleError Attribut

ASP.NET MVC hat ein HandleError Attribut, welches bei einer unbehandelten Exception zum Zuge kommt. Um auch hier ELMAH zu integrieren, überschreibt man einfach die OnException Methode wie hier vorgeschlagen:

How to get ELMAH to work with ASP.NET MVC [HandleError] attribute?

Ergebnis

Nach wenigen Minuten hat man nun unter http://server/elmah.axd eine übersichtliche Liste der aufgetretenen Exceptions mit unzähligen weiteren Möglichkeiten.

image

Download

ELMAH kann hier runtergeladen werden. Mein Beispielcode kann hier runtergeladen werden.


Written by Robert Muehsig

Software Developer - from Saxony, Germany - working on primedocs.io. Microsoft MVP & Web Geek.
Other Projects: KnowYourStack.com | ExpensiveMeeting | EinKofferVollerReisen.de