如果应用程序使用NLog,为什么会使用ELMAH

时间:2015-02-23 03:24:10

标签: logging nlog elmah error-logging

我必须编写一个集中式日志框架。

基本要求是:

  • 如果SQL Server DB需要,请记录异常以及其他详细信息。
  • 如果数据库已关闭,则故障转移选项是登录文件和电子邮件

我已经做了一些阅读并且看起来NLog是最简单的选项和我需要的大多数功能。 我的计划是围绕NLog编写一个包装类库,并在我的所有asp.net应用程序,web api以及其他库项目和一些使用COM +的经典asp站点中使用我的库。

但是我注意到有些人提到使用ELMAH进行异常处理,使用NLog进行诊断。

我的问题(或者我应该说是混乱):如果我使用NLog,为什么要使用ELMAH?

或者何时会使用ELMAH和NLog一起使用?

注意我并不是要逐个功能进行比较,而是希望了解:当一个人选择一个而不是其他人时会出现什么情况?除了ELMAH用于Web应用程序之外。

2 个答案:

答案 0 :(得分:13)

Elmah用于处理未捕获的异常,并且通常是“最后一道防线”,能够识别事情何时完全消失。您可以在其github页面上阅读它提供的内容:http://code.google.com/p/elmah/

NLog和其他人(我强烈推荐Serilog)用于运行时诊断和跟踪......也就是说,转储您要么跟踪或记录的信息(根据定义,这不是未捕获的异常)。

NLog,就像log4net一样,nlog已经有了很长的篇幅,虽然最近有一个版本......一年前的早期版本,我觉得大多数“旧守卫”日志框架还没有真正成长与时俱进。

Serilog是一个更好的选择,因为它提供了“结构化日志记录”,例如,它允许您搜索日志文件中的特定字段。

答案 1 :(得分:-1)

Erik打了个头,为什么有人会同时使用它们。但是,ReflectInsight是结构化日志记录和异常捕获的更好选择。 https://insightextensions.codeplex.com