Spring Boot 学习摘要–关于日志框架
学习教程来自:B站 尚硅谷
1. 关于日志框架
市面上有 N 多个日志工具包,为了能通用,会有专门的抽象类,所以需要用的时候,要先选择一个抽象类的包,然后选择对应的一个实现类的包
抽象类:JCL 、 SLF4J
实现类:Log4J 、 JUL 、 Log4J2 、 Logback
Spring Boot 选择是的 SLF4J 和 Logback
抽象类也就是门面,只是在.java文件中调用的类(包),底层实现还是用的 Logback
1. SLF4J 的使用
在开发的时候,应该调用日志抽象层中的方法,会自动适配到实现层的方法
在系统里导入 slf4j 和 logback 的 jar 包
1 | import org.slf4j.Logger; |
PS:如果 slf4j 要调用 log4j 的实现方法,因为 slf4j 出现的早,没有做 log4j 的适配,所以需要再导入一个 slf4j-log412.jar,来自动匹配到 log4j 的方法
每一个日志框架都有自己的配置文件。如果要是用slf4j的话,配置文件还是需要用日志实现框架自己本身的配置文件。
2. 如果有多个系统,每个系统用的日志框架都不一致,如何统一修改为 slf4j ?
将系统中不同的日志框架包按照下图来替换
3. slf4j 的使用
- 日志的级别 由低到高
可以调整日志的级别,只打印大于等于该级别的日志
1 | logger.trace("...") |
Springboot 默认输出的是 info 级别的日志,即只输出 info、warn、error 这三个级别的日志。可以在 application.properties
文件里修改
1 | logging.level.具体的某一个包或类=trace/debug/info/warn/error |
- 指定输出日志文件 在 application.properties 文件中配置
1 | logging.file= |
- 如果没有配置这两项,日志只在控制台输出
- 只配置
logging.file
:会在当前项目下生成日志文件 - 只配置
logging.path
:会在磁盘根路径下创建文件夹,并且使用spring.log
作为默认文件
1 | # 在控制台输出的日志的格式 |
- 其他配置 添加新的配置文件
如果是使用 Logback
日志框架,添加 logback.xml
来指定配置,但是更推荐使用 logback-spring.xml
文件来指定配置,这时候日志框架不会直接加载配置文件,而是由 SpringBoot 解析日志配置,这样就可以使用 springProfile 功能,通过指定运行环境(dev/prod)来实现切换输出日志形式。
如何切换运行环境:
1 | # application.properties 文件中添加 |
附:logback.xml
1 | <?xml version="1.0" encoding="UTF-8"?> |