Ran*_*ica 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/ /sf/ask/8263321/

我的想法:

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

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

我用过这两个,发现它们都运作良好.


RSo*_*erg 5

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

log4net的

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

记录应用程序块

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

ELMAH

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