日志框架使用学习
日志框架:
-
框架用来记录一些运行信息
-
异步模式、自动归档…
-
面向接口编程:写了一个统一的接口层:日志门面(抽象层)
市面上的日志框架:
JUL、JCL、jboss-logging、logback、log4j、log4j2、slf4j
日志门面 | 日志实现 |
---|---|
|
Log4j、 |
-
jboss-logging不是一般人用的,比较复杂,不推荐。JCL已经很久没更新了,廉颇老矣,尚能饭否,也不推荐。
-
Log4j、SLF4j、Logback是一个人写的,因为Log4j的性能问题,他想升级,同时他觉得以后可能又要写新框架,就写了一个Slf4j的抽象层
-
JUL是怕日志框架没有市场,所以写的,一般不选用
-
Log4j2是apache下的,写的比较好,但是现在很多框架还没用起来,也不推荐
-
Logback和Slf4j是比较好的组合选择.
-
SpringBoot:底层是Spring框架,Spring框架默认是用JCL(Commons Logging),Spring又做了封装,换成了SLF4J和Logback
日志门面:SLF4J
日志实现:Logback
日志适配
配置文件使用日志实现框架本身的配置文件
遗留问题:
A系统(Slf4j+logback):Spring(Commons logging)、Hibernate(jboss-logging)、Mybatis、xxx
统一日志记录,即使是别的框架也和我一起使用slf4j进行输出
解决:引入偷天换日包、狸猫换太子包,例如jcl-over-slf4j.jar里的类和JCL是一样的,但是里面的实现只干了一件事情,就是调用SLF4j的接口,这样就完成了偷天换日,其他框架也可以使用SLF4J了