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

gbs*_*gbs 14 logging error-logging elmah nlog

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

基本要求是:

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

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

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

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

或者什么时候会使用ELMAH和NLog一起使用?

要么

注意我并不是要逐个功能地比较功能,而是想要理解:当一个人选择一个而不是其他人时会出现什么情况?除了ELMAH用于Web应用程序的事实.

Eri*_*sch 16

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

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

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

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