java学习之路spring boot

spring boot 源码解析(三)日志框架及集成使用

2020-12-03  本文已影响0人  唯有努力不欺人丶

前两章简单的说了下spring boot独立成jar 的原理。和spring boot的一些配置及为什么可以自动配置的原理。而今天这篇又是一个独立的知识点:日志。
其实说起日志这个可以和Spring Boot关系不密集,哪怕我们不用Spring Boot也是要用日志的。
往小了说记录项目的使用情况,往大了说出了问题得以调试。这是一个必不可少的东西。所以这一章会详细的讲解一下日志及日志框架。

市场上常用的日志框架

JUL(java.util.logging),JCL(jackarta Commons Logging),Jboss-logging,Logback,Log4j,Log4j2,slf4j(Simple Logging Facade for Java)...
其中:JCL(jackarta Commons Logging),Jboss-logging,slf4j(Simple Logging Facade for Java)这三个是日志门面(日志的抽象层)
JUL(java.util.logging),Logback,Log4j,Log4j2这四个是日志的实现
我们在使用的时候一般会选择一个实现,再选择一个门面:
下面我们一一分析:

分析了这么多,我们的选择也出来了:slf4j和logback。
而我们用的框架:
Spring 框架默认是用JCL。
Spring Boot选用的是slf4j和logback。

Spring Boot中使用日志

在spring boot项目中,不需要导入额外的依赖包,直接就整合了slf4j了(其实spring boot中整合了好多日志框架)。

Spring boot中的自带的日志框架
日志级别
日志本身是有级别之分的。根据日志的重要性,分了五个级别,由低到高分别如下:
trace < debug < info < warn < error
我们可以调整输出的日志级别,日志就只会在这个级别及以上更高级别的生效。如下demo:
! 默认输出info级别日志
正常来讲这五个打印都应该输出,但是事实上并不是这样,说明spring boot默认的级别就是info.不过这个级别是可调的,如下配置:
logging.level.lsj=trace

这个配置需要注意下:level后面的是自己的包名。这个配置的作用域是指定的包。
这个日志在控制台其实看起来也不是很方便,所以日志是可以输出到指定路径的指定文件的。这里需要两个配置:

logging.file=xxx.log #指定文件名,可以在这顺便指定文件路径
logging.path=/xx/xx #指定路径。这个和上面的是冲突的。指定路径后会自动生成springboot默认名称的spring.log文件。

需要注意的是上面的是spring 1.x版本的使用方法。而2.x以上这两个配置改名字了,变成了:

logging.file.name
logging.file.path

使用方法还是差不多的,附上使用截图:


日志输出到文件截图

其实这个还有一个好处,就是可以分天记录日志,或者分周,分月都可以的。
当然了,这个控制台和日志文件的输出格式也都是可以改的,在符合规定的情况下可以改成你想要的,如下两个配置:

logging.pattern.console=
logging.pattern.file=
控制台输出格式改变了
日志文件输出格式也改变了

至于这个输出是有一定格式的,比如:

本篇文章就到这里,都是一些很基础的知识和理论,可能看上去干货不多,但是其实这个有助于你能看懂日志,并作出修改。如果本篇文章稍微帮到你了记得点个喜欢点个关注。也祝大家工作顺顺利利吧!

上一篇 下一篇

猜你喜欢

热点阅读