比较企业库中的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/