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

5
有人能比较一下这两种日志记录机制吗?
3个回答

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 配置有些晦涩难懂,并且文档不是很好(我这么认为)。然而,EL 的配置同样麻烦(没有配置工具会更麻烦),并且 EL 提供了太多选择,你可能需要花一些时间进行设计(例如,你想将类别与日志级别、层次结构、功能区域或者以上所有关联起来,还是其他什么?)

如果您已经在使用 EL,则为保持一致性,您可能希望继续使用 EL Logging(它还与 Exception Handling Block 集成)。如果我正在为应用程序使用 EL,则我倾向于使用 EL 进行日志记录。否则,对于小型应用程序,我通常更喜欢 log4net,因为设置时间通常更短。(这并不是贬低任何人最喜欢的记录器! :))

我已经使用过两种记录器,并发现它们都很好用。


log4net的绝佳资源:http://www.beefycode.com/post/Log4Net-Tutorials-and-Resources.aspx - frankadelic

5

以下是直接从工具网站上摘录的一些描述。我更喜欢ELMAH,但没有花太多时间在Log4Net或Logging Application Block上。

Log4Net

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

Logging Application Block

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

ELMAH

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

1

5
我怀疑有点偏见,因为这篇文章是一家商业公司撰写的,旨在推销他们的记录产品... - Gordon Thompson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接