Exception Logging

For new web applications, ELMAH is the first package I recommend that developers install. When NuGet was first released, every NuGet talk I gave (and nearly every other presentation about NuGet) had a demonstration that installed the ELMAH package. ELMAH is an acronym for Error Logging Module and Handler. It logs all unhandled exceptions in your application and saves them. It also provides a UI to list the errors in the log and display them in a nice format, maintaining the details you would see in the dreaded Yellow Screen of Death.

To keep things simple, most demos of ELMAH show installing the main elmah package. This package contains a bit of configuration to make ELMAH work using an in-memory database and depends on the elhmah.corelibrary package.

This works great for a demo, but it doesn't work for a real site since the exception log is stored in memory, which doesn't persist if the application is restarted. Fortunately, ELMAH includes packages for most of the major database vendors as well as one that stores items in XML files.

Since the NuGet Gallery uses SQL Server as its database, we installed the elmah.sqlserver package. This package requires a bit of manual configuration. When you install this package into your own project, it adds a script named Elmah.SqlServer.sql in the App_Readme folder of the target project. You'll need to run that script against your SQL Server database in order to create the tables and stored procedures that ELMAH needs.

In the ...

Get Professional ASP.NET MVC 4 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.