代码之家  ›  专栏  ›  技术社区  ›  mwjackson

被动登录现有的.NET Web应用程序?[关闭]

  •  3
  • mwjackson  · 技术社区  · 17 年前

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

    作为控制所有这些的起点,我只想做一个覆盖,捕捉应用程序中抛出的所有异常,并将其像DB表一样记录到某个地方。不幸的是,在应用程序中进行明确的编码需要很多天甚至数周的时间,这样就排除了手工编码的可能性(例如,将logger.log(ex)放在任何地方)以及log4net和nlog等。我正在寻找另一个更轻量的解决方案。

    在这里快速阅读之后,我遇到了各种各样的技术,比如:

    • 面向方面的编程,例如
      • 基于属性
      • Post Sharp库
      • 微软统一
      • 城堡统一
    • 网络处理器
      • 埃尔马
      • 其他?

    人们对这些解决方案有什么经验?记住,我希望尽可能简单、无痛地实现这一点,因此在这个阶段不需要敲钟和吹口哨。我所需要的是将每个异常报告到一个位置,这样我就可以开始在逻辑中发现漏洞。

    编辑:

    我应该清楚地表明,我想要记录所有的****异常(甚至是那些被处理的异常,因为有些异常被错误地处理)。是否可以配置elmah来执行此操作?如果没有,我还有什么选择?

    3 回复  |  直到 17 年前
        1
  •  5
  •   Johnno Nolan    17 年前

    我完全推荐Elmah插入您的应用程序。找出哪里出了问题让人大开眼界。我的应用程序中有几个未报告的超时,例如,我已经识别并修复了这些超时。

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

        2
  •  3
  •   John Saunders    17 年前

    不要添加任何捕获。使能 ASP.NET Health Monitoring . 如果愿意,可以将其配置为记录到数据库。

    除此之外,我愿意 Enterprise Library 特别是异常应用程序块和日志应用程序块。在任何您喜欢的地方应用日志记录(它可以在生产中配置为关闭),但只能在层边界捕获异常,就像在公共DAL方法中一样。


    企业图书馆的好处之一是 Design for Operations 如果你对这类事情感兴趣的话,Project很适合它:

    专注于开发工具的项目 以及帮助实现 高度可管理的发展 Windows平台上的应用程序。

    这个项目创建了两个 可交付成果。首先是视觉 工作室团队系统管理模型 设计动力工具(TSMMD)。TSMD是 业务线建模工具 健康场景和相关 仪表。工具包括 生成的指导包 平台仪表(调用 仪器助手)和 验证程序以确认该应用程序 源代码包含检测 在健康模型中定义。工具 然后可用于生成 System Center管理包 Operations Manager 2007年。最后是 管理指南包含 建筑规范性指导 上的高度可管理应用程序 Microsoft Windows平台。

        3
  •  1
  •   Ryan    17 年前

    考虑使用面向方面的框架将日志代码注入源代码预编译时。日志记录是AOP的教科书应用,所以大多数包应该能够处理您的需求。

    这是一个很好的AOP库列表。 http://www.bodden.de/tools/aop-dot-net/

    我大约4年前在.net上玩过AOP,从那时起,图书馆似乎已经非常成熟了。

    推荐文章