【发布时间】:2026-02-11 02:50:01
【问题描述】:
我刚刚开始开发一个棕地 ASP.NET 2.0 Web 应用程序。与许多棕地应用程序一样,架构,特别是异常日志架构,不一致,并且在某些地方丢失或不正确(吞下异常、重新抛出、将它们用于控制逻辑等)
作为控制所有这一切的起点,我想笼统地捕获应用程序中抛出的所有异常,并将其记录在数据库表之类的某个地方。不幸的是,要在应用程序中显式编写代码需要很多天甚至几周的工作,因此排除了手动编码的东西(例如,将 logger.log(ex) 放在任何地方)以及 log4net 和 nlog 之类的东西。我正在寻找另一种更轻量级的解决方案。
在这里快速阅读后,我遇到了各种技术,例如:
- 面向方面的编程,例如
- 基于属性
- Post Sharp 库
- 微软 Unity
- 统一城堡
- Web 处理程序
- ELMAH
- 其他?
人们对这些解决方案有何体验?请记住,我希望尽可能简单且轻松地实现此功能,因此在此阶段不需要花里胡哨。我需要的只是将每个异常报告到一个位置,这样我就可以开始寻找逻辑中的漏洞了。
编辑:
我可能应该明确表示我想记录 ****ALL**** 异常(即使是已处理的异常,因为有些处理不正确)。是否可以配置 Elmah 来执行此操作?如果没有,我还有哪些其他选择?
【问题讨论】:
-
ELMAH 是要走的路,我最近将它硬塞进了一个 2 岁的硬壳 asp.net 2.o 应用程序,除了将 dll 放入 bin 和一些 web 之外,没有任何问题,也没有代码更改。配置
-
+1 让我在找到“棕地应用程序”的定义之前访问了两个不同的 wiki 站点。我需要更好地跟上术语......
-
哈哈对不起,我把措辞改得更清楚一点
-
有人对我的编辑有任何想法吗? “我可能应该明确表示我想记录 ALL 异常(即使是已处理的异常,因为有些处理不正确)。是否可以配置 Elmah 来执行此操作?如果没有,怎么办我还有其他选择吗?”