在编程中,日志可以快速的帮我们进行定位到异常信息以及生产问题的分析,但是由于java 日志框架繁多并且不同系统中获取采用的是不同的日志框架,就导致了对于日志的管理以及分析是一个很繁重的事情,那么有没有一个框架用于解决这一个现象,来规范统一项目的日志处理,由此 SLF4J应用而生;
SLF4J 提供了java 日志系统的门面,日志的实现由SLF4J 进行自动适配,SLF4J 只进行抽象适配,并不负责日志具体的实,具体的实现还是由开发者自己进行选择需要的日志框架。就不会出现一个应用多个日志框架的情况,从而达到日志由一个统一日志框架实现的目的。
说了这么多,我们来看一下我们常用的日志门面有:commons-logging(jul), slf4j 用于进行整合统一项目日志框架;
java 日志真正的实现有:log4j , log4j2, jul,logback simpleLog 等;
下图是SLF4J 实现某一日志框架的过程:
1. 进行替换项目已有的日志框架以及门面,把所有日志统一到slf4j 门面上;
2. 进行日志桥接到需要使用到日志框架中;
1. SLF4J 提供了狸猫换太子的方式,创建相同的包名字,进行不同的实现来确保一些常用的日志框架的日志使用全部由slf4j 进行统一管理;
-
- jul-to-slf4j:jdk-logging到slf4j
- log4j-over-slf4j:log4j1到slf4j
- jcl-over-slf4j:commons-logging到slf4j
2. 有了这些 jar 包,这些日志框架都交给了slf4j进行了统一管理,再配置其他日志框架向slf4j 转换桥梁的jar包,就可以让单独一个日志框架进行日志的输出,避免混乱局面。
-
- logback-classic ,logback-core :logback 日志框架实现
- slf4j-log412: log4j 日志框架的实现
- slf4j-jdk14:jul 日志框架的实现
桥接如下:
原创打造,多多指教