.NET - 异常记录&监控

时间:2010-07-22 01:01:08

标签: .net exception logging monitoring

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

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

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

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

3)创建某种监听器对象来监控日志(这是否可能?)

有没有更好的选择&如何实现一个?

TIA

5 个答案:

答案 0 :(得分:5)

您应该尝试Error Logging Modules And Handlers (ELMAH)

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

  • 错误过滤
  • 查看网页上的错误(可配置的用户角色)
  • RSS feed
  • 以CSV文件格式下载
  • 以编程方式直接向其提出异常
  • 通过电子邮件发送通知

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

  

进一步阅读

     

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

     

答案 1 :(得分:2)

我强烈推荐log4net。您可以使用它执行任何类型的日志记录,此外,文档页面上甚至还有一个SMPTAppender示例,找到了here。所以你实际上可以直接将例外邮寄给你想要的任何人,你可以将它们存储在数据库中,可能性是无穷无尽的。

答案 2 :(得分:2)

Elmah和log4net是很好的解决方案,特别是如果你需要存储log&内部异常数据。他们仍然要求您设置电子邮件帐户,或者在某处登录以获取安全存储的日志。

另一个选择 - 如果您的数据可以存储在云中 - 是托管的异常监控服务,如AppfailAirbrake。这些是基于云的异常监控服务。

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

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

答案 3 :(得分:1)

我确定您的后台团队可以直接设置日志访问权限,如果您能快速谈论如何安全地执行此操作。

就个人而言,我将大量的东西记录到日志文件中,因为各种信息对于棘手的情况都很有用。但我也将异常直接记录到数据库并将其显示在安全页面上,以便我可以将其作为起点。

答案 4 :(得分:1)

您可以考虑Seq - 它是您可以在自己的环境中安装的服务器(MSI设置),然后使用NLog,log4net或Serilog发送日志。

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

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

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