Search code examples
asp.netasp.net-mvcelmah

Use ELMAH to log database errors


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?


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