日志框架
日志门面(接口,日志抽象层 ) | 日志实现 |
---|---|
JCL(Jakarta Commons Logging)、slf4j(Simple Logging Facade for Java)、jboss-logging | log4j、JUL(java.util.logging)、log4j2、Logback |
- 日志门面:slf4j
- 日志实现:Logback SpringBoot选用的是slf4j和Logback
slf4j的使用
- 如何在系统中使用slf4j: 1.日志记录方法的调用,不应该调用日志实现类,应该调用日志抽象层里面的方法。给系统导入slf4j的jar和Logback的实现jar。 2.每一个日志的实现框架都有自己的配置文件。使用slf4j以后,配置文件还是使用日志实现框架的配置文件。
- 问题:使用slf4j logback需要统一转换日志记录,别的框架使用其它日志框架的需要一起使用slf4j进行输出: 1.将系统中的其他框架日志先替换出去, 2.用面向slf4j的jar替换原有的日志框架, 3.导入slf4j的jar和Logback的实现jar。
SpringBoot日志关系
- SpringBoot底层也是使用slf4j logback的方式进行日志记录
- SpringBoot将其它日志都替换成slf4j
- 如果需要引入其它框架,一定要把这个框架的默认日志框架依赖移除。 SpringBoot能自动适配所有的日志,而且底层使用的是slf4j logback的方式记录日志,引入其它框架的时候,只需要将这个框架依赖的日志框架排除掉即可。
日志使用
- 默认配置
logging.file | logging.path | Example | Description |
---|---|---|---|
none | (none) | 只在控制台输出 | |
指定文件名 | (none) | my.log | 输出日志到my.log文件 |
(none) | 指定目录 | /var/log | 输出到指定目录的spring.log文件中 |
- 指定配置 给类路径下放上每个日志框架指定的配置文件,SpringBoot就不使用本身默认的配置。
Logging System | Customization |
---|---|
Logback | logback-spring.xml, logback-spring.groovy, logback.xml or logback.groovy |
Log4j2 | log4j2-spring.xml or log4j2.xml |
JDK(Java Util Logging) | logging.properties |
- logback.xml:会直接被日志框架识别加载
- logback-spring.xml (推荐):日志框架不能直接加载日志配置项,由springBoot解析日志配置只使用SpringBoot高级功能SpringProfile,就可以通过
<springProfile name="dev"></springProfile>
设置指定某段配置只在某个环境下生效
切换日志框架
- 可以按照slf4j的日志适配图进行相关的切换-替换加引入
- 切换log4j2:由于SpringBoot底层有log4j2的框架,只要在依赖中排出之前的starter-logging依赖。