slf4j-api、slf4j-log4j12以及log4j三者之间是什么关系?
几乎在每个项目里都可以看到log4j的身影,在多个子工程构成项目中,slf4j相关的冲突时不时就跳出来让你不爽,那么slf4j-api、slf4j-log4j12还有log4j他们是什么关系?我把自己了解的和大家简单分享一下:
slf4j:Simple Logging Facade for Java,为java提供的简单日志Facade。Facade:门面,更底层一点说就是接口。他允许用户以自己的喜好,在工程中通过slf4j接入不同的日志系统。更直观一点,slf4j是个数据线,一端嵌入程序,另一端链接日志系统,从而实现将程序中的信息导入到日志系统并记录。
因此,slf4j入口就是众多接口的集合,他不负责具体的日志实现,只在编译时负责寻找合适的日志系统进行绑定。具体有哪些接口,全部都定义在slf4j-api中。查看slf4j-api源码就可以发现,里面除了public final class LoggerFactory类之外,都是接口定义。因此,slf4j-api本质就是一个接口定义。
下图比较清晰的描述了他们之间的关系:
当系统采用log4j作为日志框架实现的调用关系: 首先系统包含slf4j-api作为日志接入的接口; at compile时slf4j-api中public final class LoggerFactor类中 private final static void bind() 方法会寻找具体的日志实现类绑定,主要通过 StaticLoggerBinder.getSingleton();语句调用 slf4j-log4j12:链接slf4j-api和log4j中间的适配器。它实现了slf4j-apiz中StaticLoggerBinder接口,从而使得在编译时绑定的是slf4j-log4j12的getSingleton()方法 log4j:这个是具体的日志系统。通过slf4j-log4j12初始化Log4j,达到最终日志的输出。 |
slf4j-api、slf4j-log4j12以及log4j三者之间是什么关系?相关推荐
- 微服务、容器、DevOps三者之间的演进关系,你清楚吗?
微服务.容器.DevOps三者之间的演进关系 容器的普及,带来了微服务架构和DevOps的高速发展. 1 微服务的弊端 1.1 测试.发布工作量剧增 单体应用拆分成多个微服务后,虽能实现快速开发迭代, ...
- 序列、触发器和存储过程三者之间有啥关系
序列.触发器和存储过程三者之间有啥关系? 好久没用oracle数据库了,今天复习了下oracle的序列.触发器和存储过程,之前对触发器和存储过程的概念有点模糊,今天来理理复习心得:存储过程相当于打包好 ...
- cron一点半到两点半之间每分钟_分辨率,定位精度,重复定位精度三者之间有什么关系?...
这篇文章,本来应该在上周发出来. 但是,因为我上周去了青海甘肃大环线,一直在路上,所以就耽误了下来. 有意思的是,我们去甘肃的城市,碰巧和大大的重合,敦煌-嘉峪关-张掖-兰州. 这不,昨天刚回来,就恶 ...
- linux有哪些高级语言编译器,程序语言,操作系统,编译器三者之间有何关系?...
程序语言,操作系统,编译器三者之间有何关系?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 程序语言,操作系统,编译器三 ...
- C语言与机器人 plc的关系,工业机器人、PLC与自动化三者之间有什么关系
原标题:工业机器人.PLC与自动化三者之间有什么关系 工业机器人.PLC与自动化三者之间有什么关系,要了解三者的关系,前提需清楚这三个到底是什么? 1.工业机器人 工业机器人是一种多关节机械手或是多自 ...
- mysql属于dbms还是dbs_DB、DBMS和DBS三者之间有什么关系
DB.DBMS和DBS三者之间的关系是:DBS包括DB和DBMS.DBS是指数据库系统,数据库系统一般由四个部分组成,分别是:1.数据库:2.硬件:3.软件:4.人员. DB.DBMS和DBS三者之间 ...
- mysql属于dbms还是dbs_DB、DBMS和DBS三者之间有什么关系_数据库
DB.DBMS和DBS三者之间的关联是:DBS包含DB和DBMS.DBS是指数据库体系,数据库体系平常由四个部份组成,分别是:1.数据库:2.硬件:3.软件:4.职员. DB.DBMS和DBS三者之间 ...
- 如何区分Workflow、BPM与PRA?三者之间有什么关系?
许多人会把工作流(Workflow)与业务流程管理(BPM)混淆,这是因为Workflow是业务流程管理的一部分.Workflow与业务流程管理(BPM)密切相关.最早的BPM解决方案主要集中于工作流 ...
- linux+kill+进程和线程,什么是程序,进程和线程?三者之间有何关系?
进程 进程与线程的历史 进程与线程之间的关系 重点 进程 和 线程的概念 进程和程序关系 cpu在执行程序时什么叫进程 swap 内存的缺页异常 大的异常 小的异常 内存映射mmap 内存泄露 tas ...
最新文章
- 第五周项目四-长方柱形(1)
- mysql优化sql相关(持续补充)
- /sbin/ifup: configuration for eth0 not found解决
- python基础:zip和dict详解
- yii2 关掉php notice,yii2关闭错误提示
- oracle-pl/sql之一
- penpyxl basic function demo code
- 小a与星际探索---DP
- IMPORT MULTIPLE JS
- 9年经验,总结SEO职业瓶颈
- 国家级计算机实验教学师范中心,国家级实验教学示范中心
- 关于Eclipse安装ArchStudio 5插件出现An error occurred while collecting items to be installed......的解决方法
- 微信公众号的用户运营?
- 趋势一次一单EA,不加仓不网格,每单带止损止盈,风险可控
- 微软常用运行库合集(32+64位)
- SAP 采购发票校验
- Docker 4 之 Docker 客户端和守护进程
- 弱校联萌十一大决战之如日中天A	Ariel【二进制+排序】
- 拼多多为什么不显示评论
- 大数据常用文件格式介绍
热门文章
- RT-Thread 事件(学习笔记)
- Three光线投射实例
- mac2600r_水星(MERCURY)MAC2600R路由器怎么设置?
- [gotoac]数论公式
- 私人linux远程连接,Linux to Linux 远程连接
- 计算机专业还有前途吗?从业9年的程序员告诉你优缺点
- Centos6.5设置静态IP并能进行联网
- java python rsa加密_使用bouncy castle和python PKCS1OAEP进行java RSA加密
- CocosCreator实战项目1:忍者跳跳跳
- [病毒分析]WannaCry病毒分析(永恒之蓝)