阿里巴巴开发手册强制使用SLF4J作为门面担当的秘密,被我发现了(1)

简介: 阿里巴巴开发手册强制使用SLF4J作为门面担当的秘密,被我发现了

之前已经详细、全面地介绍了 Log4j,相信小伙伴们已经完全掌握了。那我在读嵩山版的阿里巴巴开发手册(没有的小伙伴,记着找我要)的时候,就发现了一条「强制」性质的日志规约:


应用中不可以直接使用日志系统(Log4j、Logback)中的 API,而应该使用日志框架中的 API,比如说 SLF4J,使用门面模式的日志框架,有利于维护和统一各个类的日志处理方式。

(为什么我把这段文字手敲了下来呢,因为我发现阿里巴巴开发手册上的有语病,瞧下面红色标出的部分)


image.png


(维护和统一,把统一放在最后面读起来真的是别扭,和的有点牵强,请问手册的小编是数学老师教的语文吧?)



那看到这条强制性的规约,我就忍不住想要问:“为什么阿里巴巴开发手册会强制使用 SLF4J 作为 Log4J 的门面担当呢?”究竟这背后藏了什么“不可告人”的秘密?


(请小伙伴们自行配上 CCTV 12 台的那种 BGM)


PS:顺带给小伙伴们普及一点小知识,阿里巴巴开发手册上出现的 Jakarta 其实是 Apache 软件基金会下的一个开源项目。其实 Commons 是以前隶属于 Jakarta,现在是作为 Apache 下的一个单独项目,阿里巴巴开发手册上的描述已经不太恰当了,换成是 Apache Commons Logging 会更合适一点。


(忍不住又给阿里巴巴开发手册挑了一个毛病,请原谅我“一丝不苟”的做事态度)


01、SLF4J 是什么


SLF4J 是 Simple Logging Facade for Java 的缩写(for≈4),也就是简易的日志门面,以外观模式(Facade pattern,一种设计模式,为子系统中的一组接口提供一个统一的高层接口,使得子系统更容易使用)实现,支持 java.util.logging、Log4J 和 Logback。


SLF4J 的作者就是 Log4J 和 Logback 的作者,他的 GitHub 主页长下面这样:


image.png


一股秋风瑟瑟的清冷感扑面而来,有没有?可能巨佬不屑于维护他的 GitHub 主页吧?我的 GitHub 主页够凄惨了,没想到巨佬比我还惨,终于可以吹牛逼地说,“我,沉默王二,GitHub 主页比 SLF4J、Log4J 和 Logback 的作者 Ceki Gulcu 绿多了。。。。。。”


image.png


1996 年初,欧洲安全电子市场项目决定编写自己的跟踪 API,最后该 API 演变成了 Log4j,已经推出就备受宠爱。


2002 年 2 月,Sun 推出了自己的日志包 java.util.logging(可称 JUL),据说实现思想借鉴了 Log4j,毕竟此时的 Log4j 已经很成熟了。


2002 年 8 月,Apache 就推出了自己的日志包,也就是阿里巴巴开发手册上提到的 JCL(Jakarta Commons Logging)。JCL 的野心很大,它在 JUL 和 Log4j 的基础上提供了一个抽象层的接口,方便使用者在 JUL 和 Log4j 之间切换。


image.png


但 JCL 好像并不怎么招人喜欢,有人是这样抱怨的:


image.png

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7月前
|
存储 JavaScript Java
【黑马头条-Java微服务项目】
【黑马头条-Java微服务项目】
185 0
|
7月前
|
设计模式 NoSQL Java
靠这套2023新版java面试300集全套视频成功上岸一线互联网大厂
最近,收到许多小伙伴的回复,说是投出去的简历没有人回复; 1.可能是学历问题,因为学历是门槛,这是个硬伤,只有提升学历才能不被筛选掉; 2.可能是技能的问题,你是一份简历投递多家公司,而不是按照公司的需求来写简历的,所以公司压根就不跟你谈; 3.技术栈的问题,别人都写的精通某某技术栈,而你只敢写熟悉,所以被筛选; 4.招聘公司需求小,都开始上工,岗位还没有放出来,所以需要提前准备好,才能在众多面试者中,脱颖而出; 5.要想写出牛叉的简历,就需要过硬得到技能,没有技能就算你写上去,也是被淘汰掉,因为你压根就不会,所以还需一份牛叉的简历,按照上面的技术栈准备对应的技能;
|
3月前
|
网络协议 Java 程序员
完美!腾讯技术官发布Java零基础就业宝典,不用再怀疑人生了
近几年来,互联网行业变化非常大,除了龙头企业的更替,“裁员潮”“失业潮”也不断掀起,尤其是对于年纪太大的程序员真的是不太友好。但是,根据数据统计表明,自2018来,学习IT行业的人不减反增,更有不少其他行业的人转学转行。
|
4月前
|
SQL 安全 前端开发
这部SpringBoot实战派早已刷爆国内外一线大厂!面试稳了!
近年来,Spring Boot 是整个Java社区中最有影响力的项目之一,常常被人看作是Java EE( Java Platform Enterprise Edition )开发的颠覆者,它将逐渐替代传统SSM ( Java EE互联网轻量级框架整合开发——Spring MvC+Spring+MyBatis)架构。
|
7月前
|
SpringCloudAlibaba Java 开发者
现在国内最牛逼的 Spring CloudAlibaba全栈操作手册,不接受反驳
Spring Cloud Alibaba 近几年在受到国内不少开发者的广泛关注,也成为面试比较吃香的一个技能点了,如果你连Spring Cloud Alibaba 微服务生态都没用过,那么你可能就要被时代淘汰了。
73 0
|
11月前
|
SQL 设计模式 Java
阿里资深工程师教你门面模式
应用场景明确,主要在接口设计方面,以兼顾接口的易用性、通用性。
83 0
|
安全 Java 编译器
阿里巴巴面试题- - -Java体系最新面试题(2022内部资料)
阿里巴巴面试题- - -Java体系最新面试题(2022内部资料)
|
自动驾驶 Java 大数据
为什么学Java?五大理由助你起航!
打开一切科学的钥匙都毫无异议地是问号,我们大部分的伟大发现都应当归功于如何?而生活的智慧大概就在于逢事都问个为什么?
为什么学Java?五大理由助你起航!
|
安全 Java API
【小家java】《阿里巴巴 Java开发手册》读后感---拥抱规范,远离伤害(上)
【小家java】《阿里巴巴 Java开发手册》读后感---拥抱规范,远离伤害(上)
|
存储 SQL 搜索推荐
【小家java】《阿里巴巴 Java开发手册》读后感---拥抱规范,远离伤害(下)
【小家java】《阿里巴巴 Java开发手册》读后感---拥抱规范,远离伤害(下)