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

.NET-异常日志记录和监视

  •  8
  • SoftwareGeek  · 技术社区  · 14 年前

    在生产环境中监视异常日志记录的最佳方法是什么?我有一个应用程序,其中异常记录到一个文本文件中。每次我需要访问这些日志文件时,我都会请求后台团队给我发送一份副本。

    为了即兴完成这个过程,我想到了几个选择:

    1) 定期通过电子邮件发送错误日志

    2) 将日志文件存储在数据库中

    3) 创建一些侦听器对象来监视日志(这可能吗?)

    有没有更好的选择&如何实施?

    短暂性脑缺血发作

    5 回复  |  直到 14 年前
        1
  •  2
  •   dcp    14 年前

    我强烈推荐 log4net . 您可以使用它进行任何类型的日志记录,而且,文档页上甚至有一个smptapender示例 here . 所以你可以把异常直接邮寄给任何你想要的人,你可以把它们存储在数据库里,可能性真的是无穷无尽。

        2
  •  5
  •   BrunoLM    14 年前

    Error Logging Modules And Handlers (ELMAH) .

    ELMAH是一个免费的、开源的错误日志库。它包括以下功能:

    • 错误筛选
    • 查看网页上的错误(可配置的用户角色)
    • 下载为CSV文件
    • 以编程方式直接向其引发异常
    • 电子邮件通知

    有关如何安装和使用的信息,请查看其页面。

    有关主题的更多信息 在本教程中讨论,请参阅 以下资源:

        3
  •  2
  •   Sam    12 年前

    另一种选择——如果您的数据可以存储在云中——是托管的异常监视服务,如 Appfail Airbrake

    例如,使用Appfail,您可以插入一个报告模块(类似于ELMAH的报告模块),该模块将向其web服务报告异常。然后,您可以登录以查看故障分析,并注册以接收有关重要故障的通知。

    **免责声明:我在Appfail上工作:-)

        4
  •  1
  •   pdr    14 年前

        5
  •  1
  •   Nicholas Blumhardt    10 年前

    你可以考虑 Seq -它是一个服务器,您可以安装在自己的环境中(MSI安装),然后使用NLog、log4net或 Serilog

    一旦你的应用程序将日志发送到Seq,你就可以使用一个web界面来查询它们,或者配置处理程序来通知你,也许是通过电子邮件,但实际上是你选择的任何方式:处理程序可以用C#编写并插入。

    我在这两个产品上都工作,所以显然不是一个公正的意见,但是在使用log4net和文本文件多年之后,向集中式日志和完全结构化事件的飞跃是一个相当巨大的进步。

    Serilog的开放源码(GitHub上的Apache2),支持多种后端和输出格式。Seq是商业版,但提供了一个非常有用的免费版本。