关于错误记录

时间:2011-07-11 17:03:53

标签: c# asp.net exception-handling elmah health-monitoring

问:

当我询问有关异常处理的问题时,我发现很多关于如何处理异常的文章:

我的问题有三个部分:

1-我读到了ELMAH - 错误记录模块和处理程序。

通过两篇文章thisthis。但它不适用于我,虽然配置简单。黄色死亡屏幕仍然出现在我身上!

备注:

  • 我在开发环境中本地尝试不在的代码 生产环境。

  • 我对/admin/elmah.axd感到困惑,是否存在于身体或身体上 不

  • 我使用网络应用程序而非网站。和.net 3.5


2- ELMAH是最佳选择还是我应该使用Health Monitoring?或者我可以同时使用这两者吗?


3-如果我使用ELMAH,这是否足够了,我不再需要错误文件夹和自定义错误了。?

4 个答案:

答案 0 :(得分:1)

ELMAH比健康监测更强大。如果您有ELMAH,则不需要健康监测。

您仍然需要一个自定义错误页面,以向最终用户显示漂亮的页面。我不知道“错误文件夹”是什么意思,但你不需要它。

您遇到的任何问题都可能在这里得到解答: "Resource not found" error while accessing elmah.axd in ASP.NET MVC project

答案 1 :(得分:1)

我对ELMAH的理解是,它是一种捕获应用程序可能遗漏的错误的方法,并允许您稍后查看它们。因此,如果您希望用户看到黄色死亡屏幕以外的其他内容,您仍然需要自定义错误页面。

/admin/elmah.axd是一个HttpHandler,它在磁盘上没有物理文件,而是为您提供了ELMAH捕获的错误的管理控制台。

我没有使用健康监测,所以我不能直接对它说话。我会说使用最容易使用的工具,并提供您需要的所有信息。您可以暂时使用它们,看看一个是否比另一个更适合您的需求(虽然我不知道它们是否可以相互踩踏)。

答案 2 :(得分:1)

如果您无法成功配置ELMAH或希望对错误的hadling \ logging有更多控制权,那么您可能需要考虑创建自定义错误处理模块,这非常简单。 Here你可以找到一个包含示例代码的精彩教程。

答案 3 :(得分:1)

使用运行状况监视的一个优点是,您可以从System.Web.Management命名空间记录任何事件,而不仅仅是运行时错误。

这意味着您还可以记录其他事件,例如配置错误,应用程序重启,失败和成功的安全事件等。

编辑 - 以下是评论的长期

Health Monitoring是.NET框架的一部分,通过System.Web.Management命名空间中的类,您可以记录与应用程序的所有方面相关的事件。 另一方面,ELMAH是一个插件,它本身使用.NET框架中的各种类来进行日志记录。

这意味着你无法直接比较两者。您必须将ELMAH与使用System.Web.Management进行日志记录的第三方插件(例如Spot a fault - 我目前使用的那个)进行比较。

设置和使用这样的插件非常简单。创建自己的基于运行状况监视的日志记录设置有点困难,因为文档有点薄,但是花一点时间花费,应该没有问题。