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

时间:2009-08-24 20:50:55

标签: c# logging enterprise-library

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

3 个答案:

答案 0 :(得分:11)

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

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还为您提供了很多选择,您可能希望在设计上花些时间(例如,您是否希望类别与日志级别或层,功能区域或以前的所有内容或其他内容相关?)

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

我已经使用了两者,发现它们都运作良好。

答案 1 :(得分:5)

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

Log4Net

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

Logging Application Block

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

ELMAH

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

答案 2 :(得分:1)