【问题标题】:Logging exceptions in asp.net在 asp.net 中记录异常
【发布时间】:2011-03-23 06:17:12
【问题描述】:

在我的团队中,有关于 Web 应用程序异常日志记录的讨论,关于我们是否应该记录到文本文件或事件日志。

谁能告诉我在应用程序中记录异常的更好方法是什么?我已经提到的两个之一还是有更好的选择?

【问题讨论】:

    标签: c# asp.net logging event-log


    【解决方案1】:

    不要重新发明轮子 - 使用现有的日志库/工具,例如 log4netELMAH,而不是编写自己的日志库。两者都为您提供了多种选择来记录异常的位置,这取决于您的喜好。

    需要考虑的两件事:

    1 - 如果您正在登录数据库,但数据库不可用/负载过重,您会登录到哪里?
    2 - Windows 事件日志非常轻量级,event log forwarding 意味着您可以自动聚合来自多台机器的日志无需编写任何代码

    【讨论】:

      【解决方案2】:

      另一个很棒且易于使用的 Logging-Library 是 NLOG

      来自网站:

      "支持的目标包括:

      • 文件 – 单个文件或多个文件,带有 自动文件命名和归档
      • 事件日志 - 本地或远程
      • 数据库 – 将您的日志存储在数据库中 .NET 支持
      • 网络 – 使用 TCP、UDP、SOAP、MSMQ 协议
      • 命令行控制台 - 包括 消息的颜色编码
      • 电子邮件 – 你 可以随时接收电子邮件 发生应用程序错误
      • ASP.NET 跟踪

      ……还有更多

      其他主要功能:

      • 非常容易配置,无论是通过配置文件还是以编程方式
      • 从 log4xxx 得知的易于使用的记录器模式
      • 使用缓冲、异步日志记录、负载平衡、故障转移等的高级路由
      • 跨平台支持:.NET Framework、.NET Compact Framework 和 Mono(在 Windows 和 Unix 上)"

      【讨论】:

        【解决方案3】:

        我更喜欢文本文件,因为它可以提供更大的灵活性和更轻松的导航。我想这是一个偏好问题,但在 Windows 事件日志中的错误之间导航似乎非常麻烦。除了繁琐的导航之外,它还包含您不关心的错误。如果您可以定义格式内容,那么效率会更高。

        【讨论】:

          【解决方案4】:

          在我工作的应用程序中,我们习惯于在数据库中记录每个异常,因此这种方式更容易将异常详细信息链接到他们被要求填写的“用户错误报告”(这是我们的默认错误页)。它可以帮助我们进行统计,并且如前所述,将异常详细信息与用户对错误的描述联系起来(例如,他采取了哪些步骤来获取该错误等...)

          【讨论】:

            【解决方案5】:

            免责声明:我是KissLog.net日志应用程序的开发者。

            log4Net 和 Elmah 非常好,但它们的能力有限。

            Elmah 不支持跟踪/日志消息,并且只记录异常,并且 log4Net 不提供用户界面来浏览日志。

            您可以尝试使用KissLog.net,这是一个我尝试聚合所有必要日志记录功能(捕获错误、日志/跟踪消息、易于使用的用户界面)的应用程序

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2017-11-22
              • 1970-01-01
              • 2011-01-07
              • 1970-01-01
              • 2010-11-10
              • 1970-01-01
              • 2011-03-30
              • 2010-10-23
              相关资源
              最近更新 更多