Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ELMAH SQL Error Handler database not available- what happens to logging?

Tags:

database

elmah

I'm testing ELMAH and have deliberately turned off the database connection for the ELMAH log in my application to see what will happen in production if the DB isn't available.

It seems that ELMAH can't trap its own errors- the AXD file isn't available when the SQL databse log fails.

What is the intended behavior of ELMAH if the database isn't available?

How can I diagnose my errors if this occurs?

like image 681
Caveatrob Avatar asked Apr 16 '09 21:04

Caveatrob


People also ask

What is Elmah logging?

In this article ELMAH is a free, open source error logging library that includes features like error filtering and the ability to view the error log from a web page, as an RSS feed, or to download it as a comma-delimited file.

How do I view the Elmah error log?

Build the application, run it in the browser, and navigate to http://www.yoursite.com/elmah.axd. You are prompted to log in before you see the content. After a successful authentication, you see a web page to remotely view the entire log of recorded exceptions.

What is Elmah Axd?

Description. ELMAH (Error Logging Modules and Handlers) is an application-wide error logging facility that is completely pluggable. It can be dynamically added to a running ASP.NET web application, or even all ASP.NET web applications on a machine, without any need for re-compilation or re-deployment.


1 Answers

It seems that ELMAH can't trap its own errors

ELMAH does trap its own errors to some extent. If the ErrorLogModule encounters an exception while attempting to log the error then the exception resulting from logging is sent to the standard .NET Framework trace facility. See line 123 from 1.0 sources. See also the following walk-through from the ASP.NET documentation for getting the standard .NET Framework tracing working with ASP.NET tracing:

Walkthrough: Integrating ASP.NET Tracing with System.Diagnostics Tracing

the AXD file isn't available when the SQL databse log fails.

That is correct. SQL Server database connectivity must be functional to view errors stored in a SQL Server database when using SqlErrorLog.

What is the intended behavior of ELMAH if the database isn't available?

If, for example, the SQL Server database is down, a SqlException will occur during logging. ELMAH will then send the SqlException object content to the standard .NET Framework trace facility.

How can I diagnose my errors if this occurs?

The best option here is to also enable logging and e-mailing of errors. If the database is down, chances are good that the mail gateway is up and you will still get notified of errors. The errors will, in effect, get logged in some mailbox(es). This also has the added advantage that if the mail gateway is ever down then chances are that the database will be up and errors will get logged there. If both are down, however, then you will need to seriously review your production infrastructure and possibly take measures for monitoring health of your system via additional measures.

like image 66
Atif Aziz Avatar answered Oct 22 '22 18:10

Atif Aziz