`
zerxd
  • 浏览: 74400 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

日志框架的介绍(网摘)

阅读更多
1 概述 在日志框架出现之前,开发人员主要是通过自己实现的日志组件来实现日志的记录。这些日志组件都有着共同的问题:
   ■ 功能太弱,只能输出到控制台或指定的文件
   ■ 大量的日志代码混在业务逻辑中,代码可读性差,在正式环境中的日志打印无法控制导  
      致系统性能下降
   ■ 日志格式难以统一维护 日志框架的出现解决了上述的问题,降低了日志代码的耦合
      性,通过配置提高日志记录的灵活性。

   日志框架的基本概念为以下几点:
   ■ 输出级别:是调试信息,信息,还是警告,错误,致命错误等
   ■ 输出目的地:输出到控制台,文件,可写设备,还是数据库
   ■ 输出格式和内容:输出哪些东西,如何排版等。

   Java领域里存在大量的日志框架和组件,www.open-open.com收录了二十多个基于java技术的日志框架。 这些日志框架从功能上可分为三类。
   一是日志工具类,它实现了日志的记录,格式和级别的划分,代表为Logback Simplelog。
   二是日志系统,提供了完整的框架功能并实现了日志记录。代表为JDK Logger、log4j和commons-logging。
   三是抽象整合类,它提供了一组接口,完成日志功能,通过包装其他日志工具或系统来工作commons-logging、Slf4j。
    从历史上看,Log4j出现最早,它实现了日志的记录,格式和级别的划分,以及配置简单的特点把Java的日志框架推到了一个新的高度,使得开发人员彻底抛弃System.out.println。
    自JDK1.4开始,JDK提供了java.util.logging类库,提供了一个完整的日志框架,在设计上要比Log4j要更清晰。
    此外同期还出现了一些其他的日志框架,功能大同小异,在重复发明轮子的同时还造就了日志框架的概念模糊和使用混乱。在这样的背景下,一个基于Apache的commons-logging日志框架产生了。commons-logging不提倡重复发明轮子,它本身不提供任何日志方面的功能,只是对现有的主流日志框架(Log4j、JDK Logger、Simplelog等)进行包装,提供日志统一的接口。这样,开发的时候,只需要使用commons-logging,通过配置,灵活选择底层实现。 
    Log4j经过多年的发展和应用,不断完善和加强,增加了热部署、异步批量把日志写入数据库等功能。在Log4j看起来越来越强大时,内部却充满了代码的坏味道。就连它的作者也认为应该有一个更好的日志框架。于是再次操刀创建了slf4j来取代commons-logging,创建了Logback来取代Log4j。目前,Log4j和JDK Logger应用最为广泛,slf4j作为新兴的抽象层,整合Logback,以其简洁,快速,正被越来越多的顶级项目使用。如Hibernate,Jetty。

2 代表日志组件简要介绍
    Log4j:历史悠久,应用广泛,被移植到多种语言及平台,功能强大,在众多的日志框架中,仍占据着主导地位。
    JDK Logger:JDK提供的日志框架,设计精良,和JDK紧密结合,控制灵活,使用简单。 commons-logging:提供了日志的抽象层,可以整合多种实现,但有classloader问题。
    Slf4j:提供了jcl的超集,避免了classloader问题,逐步取代commons-logging 
    Logback:可靠,通用,快速,灵活的java日志工具,逐步取代Log4j。

3 项目选择思考
    ■ 单一的项目,如桌面应用,采用JDK Logger,免配置,控制灵活。
    ■ Web开发,采用log4j,因为系统已经有了很多的配置文件,不在乎多一个,而且log4j可以脱离任何组件,不像jul,和jvm紧密结合在一起。
    ■ 新项目、多项目整合开发,采用slf4j,一是它可以整合其他遗留日志组件,二是其提供的抽象层,为将来的开发提供了灵活性。而且slf4j文档和支持都很完善,性能更好。

4 参考资料
    ■ IBM developerworks对log4j的介绍。   http://www.ibm.com/developerworks/cn/java/l-log4j/index.html
    ■ Java开源日志组件列表。http://www.open-open.com/open50229.htm
    ■ Slf4j官方网站。http://www.slf4j.org/ ■ Logback官方网站。http://logback.qos.ch/ ■ Log4j官方网站。http://logging.apache.org/
    ■ commons-logging官方网站。http://commons.apache.org/logging/
分享到:
评论

相关推荐

    ASP.NET通用权限管理框架带文档

    网摘: 1、菜单导航管理 2、操作按钮 3、角色管理 4、部门管理 5、用户管理(用户权限) 6、用户组管理(设置成员,用户组权限) 7、系统配置(动态配置系统参数) 8、附加属性(自定义属性) 9、系统日志(异常记录...

    ASP.NET权限管理系统源代码MVC架构源代码EasyUI框架源代码

    功能介绍:基础设置--日志管理,异常捕获,数字字典; 部门管理--部门的详细名称,地址,排序,创建时间,创建人; 人员管理--创建人员的个人基本信息及角色; 菜单管理--所有管理的状态; 操作管理--对所有...

    MvcBootstrap框架

    网摘: 基于EF+MVC+Bootstrap的通用后台管理系统 Framework 业务无关的底层通用机制及功能 Model基类:提供数据传输和底层的最基本的基类及接口 DAL底层:基于EF code first,提供Repository泛型方法及写历史日志 ...

    学士学位论文--基于javaee的个人数字图书馆的设计与实现.doc

    “我的收藏”是指用户保存的一些网摘;“备忘录”顾名思义是指用户向系统中添加当下没有完成的事情或计划做的事情;“信息”是指系统用户间相互发送信息,交流思想;“日志”就是用户在系统中发表日志;“资料搜索”...

    本科毕业设计--基于javaee的个人数字图书馆的设计与实现.doc

    5. 日志:用户可以发布和管理自己的日志。 6. 资料搜索:用户可以搜索和管理自己的数字资源。 系统的后台管理员可以查看和管理用户信息,删除用户账户,管理系统中的所有资料。 系统的技术架构基于 Java EE,使用 ...

Global site tag (gtag.js) - Google Analytics