简单介绍日志的发展历史

最早的日志组件是Apache基金会提供的Log4j,log4j能够通过配置文件轻松的实现日志系统的管理和多样化配置,所以很快被广泛运用。也是我们接触得比较早和比较多的日志组件。它几乎成了Java社区的日志标准。 

据说Apache基金会还曾经建议Sun引入Log4j到java的标准库中,但Sun拒绝了。 所以sun公司在java1.4版本中,增加了日志库(Java Util Logging)。其实现基本模仿了Log4j的实现。在JUL出来以前,Log4j就已经成为一项成熟的技术,使得Log4j在选择上占据了一定的优势 

Apache推出的JUL后,有一些项目使用JUL,也有一些项目使用log4j,这样就造成了开发者的混乱,因为这两个日志组件没有关联,所以要想实现统一管理或者替换就非常困难。怎么办呢? 

这个状况交给你来想想办法,你该如何解决呢?进行抽象,抽象出一个接口层,对每个日志实现都适配,这样这些提供给别人的库都直接使用抽象层即可这个时候又轮到Apache出手了,它推出了一个Apache Commons Logging组件,JCL只是定义了一套日志接口(其内部也提供一个Simple Log的简单实现),支持运行时动态加载日志组件的实现,也就是说,在你应用代码里,只需调用Commons Logging的接口,底层实现可以是Log4j,也可以是Java Util Logging 

由于它很出色的完成了主流日志的兼容,所以基本上在后面很长一段时间,是无敌的存在。连spring也都是依赖JCL进行日志管理 

但是故事并没有结束原Log4J的作者,它觉得Apache Commons Logging不够优秀,所以他想搞一套更优雅的方案,于是slf4j日志体系诞生了,slf4j实际上就是一个日志门面接口,它的作用类似于Commons Loggins。 并且他还为slf4j提供了一个日志的实现-logback。 

因此大家可以发现Java的日志领域被划分为两个大营:Commons Logging 和 slf4j 

另外,还有一个log4j2是怎么回事呢? 因为slf4j以及它的实现logback出来以后,很快就赶超了原本apache的log4j体系,所以apache在2012年重写了log4j, 成立了新的项目Log4j2 

总的来说,日志的整个体系分为日志框架和日志系统 

日志框架:JCL/ Slf4j 

日志系统:Log4j、Log4j2、Logback、JUL。 

而在我们现在的应用中,绝大部分都是使用slf4j作为门面,然后搭配logback或者log4j2日志系统 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值