Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 比较企业库中的日志应用程序块与Log4net?_C#_Logging_Enterprise Library - Fatal编程技术网

C# 比较企业库中的日志应用程序块与Log4net?

C# 比较企业库中的日志应用程序块与Log4net?,c#,logging,enterprise-library,C#,Logging,Enterprise Library,有人能比较一下这两种记录机制吗 我在下面给出了一些描述,这些都是直接从该工具的网站上获得的。我更喜欢底部的ELMAH,但是没有花太多时间在Log4Net或日志应用程序块上 支持多种框架 输出到多个日志记录目标 分层日志结构 XML配置 动态配置 日志上下文 经验证的体系结构 模块化可扩展设计 高性能和灵活性 事件日志 电子邮件 数据库 消息队列 文本文件 WMI事件 使用应用程序块扩展点的自定义位置 记录几乎所有未处理的异常 远程查看重新编码异常的整个日志的网页 远程查看任何一个

有人能比较一下这两种记录机制吗

我在下面给出了一些描述,这些都是直接从该工具的网站上获得的。我更喜欢底部的ELMAH,但是没有花太多时间在Log4Net或日志应用程序块上

  • 支持多种框架
  • 输出到多个日志记录目标
  • 分层日志结构
  • XML配置
  • 动态配置
  • 日志上下文
  • 经验证的体系结构
  • 模块化可扩展设计
  • 高性能和灵活性

  • 事件日志
  • 电子邮件
  • 数据库
  • 消息队列
  • 文本文件
  • WMI事件
  • 使用应用程序块扩展点的自定义位置

  • 记录几乎所有未处理的异常
  • 远程查看重新编码异常的整个日志的网页
  • 远程查看任何一个已记录异常的完整详细信息的网页
  • 在许多情况下,您可以查看ASP.NET为给定异常生成的原始死亡黄屏,即使customErrors模式已关闭
  • 每个错误发生时的电子邮件通知
  • 日志中最近15个错误的RSS提要
      这已经被写了很多了。以下是一些需要阅读的内容:

      我的想法:

      • 普遍的共识似乎是log4net的性能更快。这在典型应用程序中是否有意义仍有待讨论
      • log4net还支持开箱即用的分层记录器,这很好。EL可以做类似的事情,但你必须自己动手
      • log4net的配置有点神秘,没有很好的文档记录(IMO)。然而,EL的配置也很麻烦(没有配置工具也很痛苦)。此外,EL为您提供了很多选择,您可能希望在设计上花费一些时间(例如,您是否希望类别与日志记录级别或层、功能区域、或之前的所有类别或其他内容相关?)
      如果您已经在使用EL,您可能只想坚持EL日志记录(它还集成了异常处理块)以保持一致性。如果我将EL用于应用程序,那么我倾向于将EL用于日志记录。如果不是的话,我通常倾向于较小的应用程序使用log4net,因为安装时间通常较短。(不要责怪任何人最喜欢的伐木者!)


      我使用了这两个工具,发现它们都很好。

      这可能会引起兴趣:

      log4net上的伟大资源:我怀疑它有点偏颇,因为它是由一家商业公司编写的,该公司试图销售他们的日志产品。。。