如何在使用大量try / catch块的ASP.NET Web应用程序中实现ELMAH?

时间:2012-01-13 13:54:43

标签: asp.net webforms elmah

我们有一个ASP.NET webforms应用程序,其中包含try / catch块。在catch块中,它调用一个方法,该方法发送一个包含有关所引发错误的有限信息的电子邮件。

我们希望在这个应用程序中实现ELMAH,但ELMAH仅适用于未处理的异常(至少基于我的经验)。我想做的是,不是从应用程序中删除所有try / catch块,而是替换发送电子邮件的方法中的代码,调用ELMAH将强制ELMAH发送电子邮件,就好像异常未处理。它看起来就像常规电子邮件,包括堆栈跟踪,经过身份验证的用户,引用URL等。

1 个答案:

答案 0 :(得分:2)

如果您处理异常,ELMAH将不会收到该异常。

ELMAH并非旨在成为一个完整的日志记录框架,而是与一个log4net一起工作。

不要试图强迫ELMAH加入此角色,而应考虑为处理的异常使用专用的日志框架。

如果您确实需要,从处理代码中发出ELMAH信号,如this answerdoes elmah handle caught exceptions as well中所述:

ErrorSignal.FromCurrentContext().Raise(ex);