【问题标题】:ASP.NET Logging - log4net or health monitoring?ASP.NET 日志记录 - log4net 或健康监控?
【发布时间】:2010-10-13 16:48:16
【问题描述】:

我正在查看 3.5 中的全新 asp.net 站点,该站点绝对没有错误处理或日志记录。记录和处理错误有哪些好的选择?我在 1.1 框架上使用过 Log4Net,但听说 3.5 中可能有更好的选择。

【问题讨论】:

    标签: asp.net logging log4net health-monitoring


    【解决方案1】:

    一种选择是 ELMAH。我在这里问了一个问题:ASP.NET Error Handling

    从那时起,我已经实现了它的一个稍微修改过的版本,并且日志和电子邮件非常好,并且可以通过 web.config 文件轻松集成。

    【讨论】:

    • 如何保护其日志页面?
    • 那是我“修改”的一部分。我不想暴露任何记录的信息,所以我将其淡化,只将信息记录到数据库并通过电子邮件发送给我。然后,当我收到电子邮件时,我可以查看数据库日志。反正我不需要远程查看。
    • Scott Hanselman 也有一篇关于 ELMAH 启动和运行的好帖子:hanselman.com/blog/…
    【解决方案2】:

    Enterprise Library 可能有一个学习曲线,但它是一个很好的项目。

    在 Asp.Net 中关注 david hayden 的文章 Enterprise Library 2.0 Logging Application Block

    【讨论】:

      【解决方案3】:

      如果您习惯于 log4net,请坚持您所知道的。它简单、快速且运行良好。我已经在 1.1、2.0 和现在的 3.5 中使用了多年。

      【讨论】:

        【解决方案4】:

        ASP.NET 健康监控实际上开箱即用就做得相当不错!

        MSDN, How to: Send E-mail for Health Monitoring Notifications

        【讨论】:

          【解决方案5】:

          就个人而言,我没有尝试过 log4net,但看到了 winforms 的规范和示例,但我的组织编写了我们自己的日志记录机制,用于报告和记录 global.asax 中捕获的错误,报告我们需要了解的有关堆栈跟踪的所有信息、会话(如果存在)、表单的 NVC、应用程序的版本、使用查询字符串和 HTTP 标头产生错误的 URL。尽管我注意到并非所有错误都记录在那里;例如表单身份验证过期或应用程序池重新启动/关闭或由 IIS 报告的未由应用程序执行引发的任何内容。

          【讨论】:

            【解决方案6】:

            我们使用两个选项进行日志记录:-

            ELMAH 用于意外异常处理

            NLog 用于预期的手动(调试、信息和错误)信息。

            ELMAH 是一个出色的开箱即用插件,可自动捕获异常(从 404(找不到页面)到抛出的 500 异常),并具有内置的 web-ui 来可视化这些错误。因此,这是一种非常快速有效地捕获发生的意外错误的方法。

            现在NLog 称赞我们的开发人员手动将调试信息插入到特定位置的代码中,因此当我们需要从非本地主机系统中获取信息时,这很容易。例如,我们在大多数方法中都使用log.Debug(..) 代码来查看局部变量是什么或返回值等。对于更重要的信息,我们使用log.Info(..) .. 但很少使用这个。最后,对于我们捕获和处理的严重错误,我们使用log.Error(..)log.Warn(..) .. 通常在一些try/catch 范围内。因此,在我们的测试或实时服务器上,如果我们需要获取大量数据、实时...或者只是一般的重要信息,例如 Info 状态,我们会打开所有日志记录状态(例如 Debug 和更高版本)和更大。我们始终拥有Warn, Error and Fatal 状态。调试状态会生成大量数据,因此我们只少量使用。

            总而言之,我建议您对 WebApp 使用两种方法。 Elmah 用于出色的 unexpected 错误捕获,NLog 用于 expected 信息和错误。

            最后,NLog 比 Log4Net 更易于使用/工作。它基本上取代了它,IMO。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-05-25
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多