11

我为将托管在 Azure 中的 ASP.NET MVC 项目实现了 Serilog,Serilog 提供了接收器来登录到 Azure 存储。

然后,我想要一种更好的方法来处理异常,并阅读了这篇关于将 ASP.NET MVC 与 Elmah 集成的内容丰富的文章 - http://www.hanselman.com/blog/ELMAHErrorLoggingModulesAndHandlersForASPNETAndMVCToo.aspx

我喜欢 Elmah 允许您查看异常,并在异常发生时通知管理员的方法。鉴于我已经拥有 Serilog,我应该将其替换为 Elmah 还是与它一起使用?

4

1 回答 1

18

Elmah 仅用于记录未处理的异常。也就是说,否则会导致黄屏死机的异常。它也有一个非常好的日志查看器,但最终,它只用于异常日志记录。

Serilog 可以做 Elmah 可以做的所有事情,除了内置查看器(没有双关语)。但是,有很多方法可以查看您的异常。

Serilog 还将进行跟踪或“事件记录”,Elmah 不会这样做(默认情况下,有一些方法可以使用 Elmah 的基础设施来做到这一点)。

最后,您不会使用 Elmah 获得 Serilog 日志记录的结​​构。你只得到平面日志文件。

如果需要,您可以同时使用两者,但我宁愿只配置一个异常处理程序来记录到 Serilog。

仅供参考,Serilog 可以登录到 Elmah。

http://blog.elmah.io/logging-to-elmah-io-from-serilog/

Elmah 网站上有一篇很好的博客文章,介绍了 Elmah 和 Log4net 之间的区别。许多相同的原因也适用于 Serilog,但显然还有 Serilog 的结构化日志记录,您不会使用其中任何一个。

http://blog.elmah.io/elmah-vs-log4net/

此外,尽管我已经链接到 elmah.io,但不要混淆。Elmah 有两个版本。其中一个是免费的(并且是开源的),另一个不是(尽管它是部分开源的)。Elmah.io 是基于云的,不是免费的。Elmah 仍然是开源和免费的。

http://code.google.com/p/elmah/

于 2015-06-08T04:44:33.833 回答