现有.NET Web应用程序中的被动日志记录?

mwj*_*son 3 .net asp.net logging aop

我刚刚开始研究一个棕色的ASP.NET 2.0 Web应用程序.与许多棕地应用程序一样,体系结构,特别是异常日志记录体系结构,不一致,在某些地方,缺失或不正确(吞咽异常,重新抛出,将它们用于控制逻辑等)

作为将所有这一切都置于控制之下的起点,我想在应用程序中抛出所有异常,然后将其记录在某个地方,如DB表.不幸的是,明确代码进入应用程序将是很多天,可能是几周的工作,因此规则出手编码事物(例如,将logger.log(ex)放在任何地方)以及诸如log4net和nlog之类的东西.我正在寻找另一个更轻量级的问题解决方案.

经过一些快速阅读,我遇到了各种各样的技术,如:

  • 面向方面编程,如
    • 基于属性的
    • 发布夏普图书馆
    • Microsoft Unity
    • 城堡团结
  • Web处理程序
    • ELMAH
    • 其他?

人们对这些解决方案的经验是什么?请记住,我希望尽可能简单而无痛地实现这一点,因此在这个阶段不需要花里胡哨.我只需要将每个异常报告给一个位置,这样我就可以开始在逻辑中找到漏洞了.

编辑:

我应该说清楚我想记录****所有****异常(甚至是处理的异常,因为有些处理不正确).是否可以配置Elmah来执行此操作?如果没有,我的其他选择是什么?

Joh*_*lan 5

我完全建议elmah插入你的应用程序.它让人大开眼界,找出出错的地方.我在我的应用程序中有几个未报告的超时,例如我已经确定并修复了.

至于简单而无痛.除了web.config的一些额外行之外,它不会对代码进行任何更改.您可以添加它并在10分钟内查看异常.