asdtiang的博客 感谢blogjava提供的博客交流平台

JAVA 日志系统简介--转

Posted on 2010-01-12 17:21 asdtiang 阅读(2089) 评论(0)  编辑  收藏 所属分类: java se

日 志,源于log,有航海日志的意思。指记录海员记录每天的行程,生活及发生的事件。在软件开发领域,用来监控代码中变量变化,跟踪 代码运行的轨迹,在开发环境中担当调试器作用,向控制台或文件输出信息。

 

几乎所有的软件开发语言(平台)都有自己的日志系统,java,.net,ruby,php等。在java领 域,存在大量的日志组件,open-open收 录了21个日志组件。

从 功能上讲,这些可以分为三类,一是日志工具类,它实现了日志的记录,格式化和级别的划分,代表为 logback,simplelog。二是日志系统,提供了完整的框架功能并实现了日志记录。代表为jul(jdk提供的日志框 架),log4j(apache开源项目)。三是抽象整合类,它提供了一组接口,完成日志功能,通过包装其他日志工具或系统来工作jcl(apache开 源组件),slf4j。

 

从历史上讲,log4j出现最早,Ceki Gülcü是其创造者。自java1.4开始,jdk提供了java.util.logging 类库,提供了一个完整的日志框架,在设计上要比log4j要更清晰。 这个时候,除此之外,还有一些其他日志组件,java领域从来不缺少轮子,总是有人在发明轮 子,轮子多了,就会产生混乱,就会有人站出来,要一统江湖,于是,jcl,apache一个开源的日志组件诞生了,它提供了一组日志系统的接口,通过对 log4j,jul和simplelog进行包装,提供日志功能。这样,开发的时候,只需要使用jcl,通过配置,灵活选择底层实现。这样,对于开发人员 来说,开发更简单了些。看起来一切太平了,可Ceki Gülcü认为,应该有一个更好的日志框架。log4j经过这么久的发展,已经成为了一个巨人,亦 伤痕累累,从外面看,经典,庄重,强壮,从内部看,却有着一根根的飞线(ThinkPad),充满了代码的坏味道。或许他没有勇气来改造这个巨人,离开也 许是最好的选择,于是,出来,创建了slf4j,来取代jcl,创建了logback,来取代log4j。目前,log4j和jul应用最为广 泛,slf4j作为新兴的抽象层,整合logback,以其简洁,快速,正被越来越多的顶级项目使用。

 

代表日志组件简要介绍。

Log4j,历史悠久,应用广泛,被移植到多种语言及平台,功能强大,在众多的日志框架 中,仍占据着主导地位。

Jul,jdk提供的日志框架,设计精良,和jdk紧密结合,控制灵活,使用简单。

Jcl,提供了日志的抽象层,可以整合多种实现。但有classloader问题。

Slf4j,提供了jcl的超集,避免了classloader问题。

Logback,可靠,通用,快速,灵活的java日 志工具(官方描述)。

 

项目选择思考。

如果是单一的项目,如桌面应用,采 用jul,免配置,控制灵活。

如果是web开发,宜采用 log4j,因为系统已经有了很多的配置文件,不在乎多一个,而且log4j可以脱离任何组件,不像jul,和jvm紧密结合在一起。

如果是多项目整合开发,宜采用 slf4j,一是它可以整合其他遗留日志组件,二是其提供的抽象层,为将来的开发提供了灵活性。

 

参考资料:

1.IBM developerworks对 log4j的介绍。 链接

2.Java开 源日志组件列表。链接

3.Slf4j官 方网站。链接

4.Logback官 方网站。链接

5.Log4j官 方网站。链接

6.Jcl官 方网站。链接

7.Sun官 方网站。链接

8.一 个jcl的中文说明。链接



天苍苍,野茫茫,风吹草底见牛羊

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 80, comments - 24, trackbacks - 0, articles - 32

Copyright © asdtiang

asdtiang的博客 PaidMailz
点击广告网赚A(每天4个广告,每个0.0025美元,一个搜索广告0.03美元)