漂泊雪狼的博客

思考,讨论,分享C#,JavaScript,.NET,Oracle,SQL Server……技术

导航

Apache log4net与EntLib Logging Application Block使用心得

Posted on 2008-09-04 01:16  漂泊雪狼  阅读(3654)  评论(25编辑  收藏  举报

      在实际开发应用中,大家难免会用到日志记录功能,在Donet开发中大多数人会有3种方法来处理日志功能:(1)使用微软企业库EntLib中的日志记录模块;(2)使用Apache的log4net日志模块;(3)自己写一个日志模块。本人个人觉得既然已经有成熟的、可配置、开源、免费的日志记录模块就没有必要自己去写了,在实际项目中我用过前面两种日志模块,现在就它们之间的异同点做出比较,望大家批评指正。

       相同点:

    1. 都是开源免费的日志模块;
    2. 都是可以进行灵活配置将日志输出到文件、数据库、事件查看器等不同目标;
 
       不同点:
    
1、MS EntLib Log模块只能在.NET平台下使用,将用户限制在MS平台下,而Apache提供的日志模块有多个平台版本,可移值性强;
    2、经本人测试Apache Log的运行效率大大高于MS EntLib Log;
    3、MS EntLib Log模块提供了可视化的配置工具,配置方便,Apache Log只能通过修改配置文件来实现,对初学者有一定的难度;
    4、MS EntLib Log会随着EntLib 进行版本更新,而Apache Log很久没有看见到更新了,目前没有.NET 3.5版下的更新了,在Apache Log中的脱机文档中介绍将日志输出到Oracle9i数据库时,有一个明显的错误,至今还没有更新修正;

    5、在日志写到数据库的情况下,迁移不同厂商的数据库时,Apache Log只需修改配置文件就可以达到迁移目的,而MS EntLib Log需要重新实现接口,自己写存储过程,MS在发布时没有提供其他版本数据库的脚本,而Apache Log提供了多种数据库版本的脚本。

      综上所述,个人觉得比较喜欢 Apache Log,推荐大家使用,不知各位有何看法?漂泊雪狼