Elmah – Error Logging Modules and Handlers for ASP.NET

Ich arbeite zur Zeit an einem kleinen ASP.net Projekt. Für das globale Exception-Logging bin ich dank meines Kollegen Tobi über Elmah gestolpert. Über Elmah besteht die Möglichkeit sämtliche unbehandelten Exceptions zu speichern. Unterstützt werden derzeit folgende Weg:

- Microsoft SQL Server
- Oracle
- SQLite
- Microsoft Access
- VistaDB
- XML-Dateien
- im Speicher

    Weiterhin besteht die Möglichkeit sich Emails schicken zu lassen. Elmah bringt gleich eine webbasierte Übersicht mit, so dass man sich sehr einfach einen Überblick über aufgetretene Exceptions machen kann.

    Um Elmah einem Projekt hinzuzufügen, muss kein Sourcecode neu kompliliert werden. Es müssen nur ein paar Anpassungen an der Webconfig vorgenommen werden.

    Hier eine ganz einfach Webconfig ohne Mailversandt:

     
    <?xml version="1.0"?>
    <configuration>
      <configSections>
        <sectionGroup name="elmah">
          <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah"/>
          <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah"/>
        </sectionGroup>
      </configSections>
      <elmah>
        <errorLog type="Elmah.SQLiteErrorLog, Elmah" connectionStringName="ELMAH.SQLite" />
      </elmah>
      <connectionStrings>
        <add name="ELMAH.SQLite" connectionString="Data Source=|DataDirectory|errors.s3db"/>
      </connectionStrings>
      <system.web>
        <compilation debug="true" defaultLanguage="C#" />
        <httpModules>
          <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
          <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/>
        </httpModules>
        <httpHandlers>
          <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/>
        </httpHandlers>
        <trace enabled="true" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true"/>
        <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-US"/>
        <trust level="Full"/>
      </system.web>
    </configuration>

    Über den Aufruf von “elmah.axd” erhält man die Webseite mit allen gespeicherten Exceptions.

    Wer also ein kleines, leichtes Framework fürs Exceptionhandling sucht, dem sei Elmah empfohlen.