比较企业库中的Logging应用程序块与Log4net?

有人可以比较这两种记录机制吗?

这已经写了很多。 以下是一些要阅读的内容:

http://james.newtonking.com/archive/2007/06/05/enterprise-library-logging-vs-log4net.aspx http://theiterator.com/2009/01/log4net-vs-enterprise-library-logging -application-block / https://stackoverflow.com/questions/118047/log4net-vs-enterprise-library-which-is-better-faster

我的想法:

  • 普遍的共识似乎是log4net执行得更快。 这在典型应用中是否有意义还有争议。
  • log4net还支持开箱即用的分层记录器,这很好。 EL可以执行类似的操作,但您必须自己动手。
  • log4net的配置有点神秘,没有很好的文档记录(IMO)。 但是,EL的配置也很麻烦(没有配置工具会很痛苦)。 EL还为您提供了很多选择,您可能希望在设计上花些时间(例如,您是否希望类别与日志级别或层,function区域或之前的所有内容或其他内容相关?)

如果您已经在使用EL,那么您可能希望坚持使用EL Logging(它还与exception处理块集成)以保持一致性。 如果我使用EL作为应用程序,那么我倾向于使用EL进行日志记录。 如果没有,那么我通常喜欢log4net用于较小的应用程序,因为设置时间通常较短。 (不要谴责任何人最喜欢的记录器!:))

我用过这两个,发现它们都很好用。

我直接从工具的网站上给出了一些描述。 我更喜欢位于底部的ELMAH,但没有在Log4Net或Logging Application Block上花费太多时间。

log4net的

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

记录应用程序块

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

ELMAH

  • 记录几乎所有未处理的exception。
  • 用于远程查看重新编码的exception的整个日志的网页。
  • 用于远程查看任何一个已记录exception的完整详细信息的网页。
  • 在许多情况下,您可以查看ASP.NET为给定exception生成的原始黄色死亡屏幕,即使关闭了customErrors模式也是如此。
  • 每个错误发生时的电子邮件通知。
  • 来自日志的最后15个错误的RSS提要。

这可能是有趣的: http : //www.dotnetlogging.com/comparison/