日志体系-发展历程

3 篇文章 0 订阅

简述Java日志体系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ntIRnKd-1571322109828)(71DF3A40840948BD81127BFB13BEE5EE)]

JAVA日志体系发展
  1. LOG4J:JDK中没有日志概念,仅有System.err与System.ou等流。所以Gülcü与2001年发布了LOG4J,成为apache顶级项目。创造出的logger,appender,level概念影响至今。
    2..JUL:sun在jdk1.4中借鉴了LOG4J提出了JUL,但是性能,易用性都不如果LOG4J,在JDK1.5中得到了修复。
  2. JCL:Apache基金会提出的门面模式,在内部使用适配器模式将LOG4J与JUL使用门面模式给出统一的对外接口。从而使开发者在使用的时候使用上层统一API,底层想用哪个实现就将对应的jar包放到classPath
  3. Logback:Gülcü提高性能创建的新版本的门面与实现。并且SLF4J提供了上层接口,用户可根据配置使用具体实现。
  4. SLF4J:Gülcü提高性能为LOG4J创建的升级版本。分为三个模块:
  • logback-core:核心模块,后两个模块的基础
  • logback-classic:log4j改良版本,并且完整实现SLF4J,能够自如切换log4j与JUL
  • logback-access:Servlet容器继承,提供通过Http来访问日志的功能(远程)
  1. log4j2:因为SLF4J与logback出现,log4j也参照了提出了第二版log4j,与第一版本不兼容,参照SLf4j分为实现与接口,log4j-api&log4j-core。
  2. 时间表
日志名称出现时间出现原因
LOG4J20001JDK1.3中指引控制台输出流
JULJDK1.4JDK1.4中参考log4j实现
JCL统一jul与log4j
SLF4J更友好的门面
logback与Slf4j一同出现更好地实现
log4j2不甘于被统一实现log4j-api与log4j-core
Java日志体系中的桥接图

在这里插入图片描述1. 想象当存在老系统已经使用jcl,.实现层面使用了log4j,现在我想将我的日志系统替换为更好的logback/slf4j。
2. 此时显然由于代码已经按照JCL的接口使用,我需要对JCL的实现不在走log4j这条线。而需要换成jcl-over-slf4j这种底层使用slf4j接口。所以使用适配器模式引入slf4j与jcl的适配器jar包
3. 最后引入logback作为slf4j的实现即可

门面模式
  1. 含义:也叫外观模式,要求一个子系统的外部与其内部通信必须通过一个统一的对象进行通信。简单说无论内部系统多么复杂,仅提供给调用者一个指定对象与制定API(摘自设计模式之禅)
  2. 例子:本文中统一了Log4j与JUL的JCL,它提供了统一的接口与统一的使用方式。而内部是使用Log4j与JUL对于客户端用户是无法了解,也屏蔽了内部复杂度
参考

java日志体系发展

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值