日志框架
老生常谈,什么是日志;我们平时用System.out.println("xxxxxx")将一下比较关键的数据在控制台;后来接触了日志框架比较常用的就是Log4J了;
一般常用的框架有:
longback,log4j,log4j2,slf4j 等
日志门面 (日志的抽象层) | 日志实现 |
---|---|
JCL(Jakarta Commons Logging)SLF4j(Simple Logging Facade for Java) jboss-logging | Log4j JUL(java.util.logging) Log4j2 Logback |
左边选一个门面(抽象层)、右边来选一个实现;
日志门面:SLF4J;
日志实现:Logback;
SpringBoot选用的是SLF4J和logback
2、SLF4j使用
1、系统中使用SLF4j
我们开发的时候一般都是调用日志抽象里面的方法,而不直接调用日志的实现类,这样可扩展性更强
我们看看这张图,我们知道了SLF4J是接口,他有很多实现类,这次我们的项目用的是logback,如果我们想换成log4j怎么呢?我们可以到通过一个中间的适配器来适配log4j
2、如何统一日志框架
我们知道每种框架都有自己的日志系统,如果一个系统里面包含了SLF4J+logback,Spring(commons-logging),Hibernate(jboss-logging),Mybatis·····等等。如何统一日志记录,让所有的日志都统一使用slf4j进行输出?