Use ELMAH to log database errors

asp.net, asp.net-mvc, elmah

Solution

If you let the exception propogate out to the Elmah Web Module it will automatically log these exceptions.

You can however programatically log directly to Elmah, there are a couple of ways to do this:

You can use code like this in your catch clause in code:

try{....}
catch(Exception ex) { Elmah.ErrorSignal.FromCurrentContext().Raise(ex); }

Another way of doing this is this:

Elmah.ErrorLog.GetDefault(HttpContext.Current).Log(new Elmah.Error(ex));

I would however wrap this code into a more generic IErrorLogger style interface so that your lower level code doesn't need to have a hard dependency on Elmah itself

Problem

I'm using ELMAH to handle the exceptions in my ASP.Net MVC project. I would like to use it to log errors like database connection timeout, query connection timeout and others. Is this possible with ELMAH?

Original source