(5)Spring Boot 日志框架

这里先进行记录,以后有用到可以再回头来看。

日志框架

市面上的日志框架;

JUL、JCL、Jboss-logging、logback、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:底层是Spring框架,Spring框架默认是用JCL;‘

  SpringBoot选用 SLF4jlogback

slf4j 使用

以后开发的时候,直接调用日志抽象类的方法。

要导入相应的包。要导入什么包,看下面这张图。

每一个日志的实现都有自己的配置文件,使用slf4后,配置文件

还是相应的日志实现框架的配置文件。slf4j只是一个门面。

 

统一日志记录:

用一个官方的包来替换他,狸猫换太子!

 

具体操作步骤:

 1.将系统中其他日志框架先排除除去:即比如导入spring的时候

就别导入commons-logg。。

2.用中间包来替换原有的日志框架。

3.我们再来导入slf4j其他的实现。

 

Spring Boot日志使用

引入新的框架后,我们要这个框架依赖的日志框架清除掉就OK。

总结:

1.spring boot底层也是使用slf4j+logback的方式来进行记录日志。

2.spring boot也把其他的日志都转换成了slf4j

利用中间转换包:

Spring Boot默认配置

spring boot 默认帮我们写好了日志了。

 

在spring boot中可以直接使用:

Logger logger = LoggerFactory.getLogger(getClass());

使用的时候:

logger.trace("这是trace日志");

logger.debug("这是debug日志");

//spring boot 默认使用的是info级别

logger.info("这是info日志");

logger.warn("这是warn日志l");

logger.error("这是error日志");

注意:

级别是依次递增的。默认使用info级别。使用的是级别以上的。

如果仅仅像上面那样运行,只会打印出来info即以上的。

如何修改呢?

可以在配置文件中修改:

指定日志文件和日志profile

使用logback-spring.xml,不要使用logback.xml

因为使用logback.xml,它就直接被日志框架加载,没有经过spring boot。

而且他不能使用profile功能。

使用logback-spring.xml可以使用spring boot高级的profile功能。

logback-spring.xml,有spring boot解析日志资源。

自定义的日志文件放在resource文件夹下:

可以在日志文件中写下面的内容:

具体使用事例:

注意,具体配置dev在之前的多profile中有说过:

1.在配置文件中:

spring.profiles.active=dev

2.在运行按钮里的Program arguments里写:

--spring.profiles.active=dev

 

切换日志框架:

可以按照slf4j的日志适配图进行相关的切换。图在上面。

(那张图来自slf4j的官网)

 

ji

即先排除相关的依赖,再把需要想日志框架的依赖导进来。

在pom.xml中里写,技巧:

在<artifactId>里写了slf4j 自动补全后,也会把<groupId>补全。