Ich 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:
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.
Download
ELMAH kann hier runtergeladen werden. Mein Beispielcode kann hier runtergeladen werden.