SpringBoot 日志系统LogBack配置本地文件打印日志
原理
在使用SpringBoot的时候,我们每次启动的时候都会看到一大段日志信息,整合在一个项目中的不同框架即使使用不同日志系统但它们的日志信息都以统一的格式打印在控制台上,这就是SpringBoot为了统一日志做出的工作。
- 直接将其他依赖以前的日志框架剔除
- 导入对应日志框架的Slf4j中间包
- 导入自己官方指定的日志实现,并作为Slf4j的日志实现层
注:Slf4j是日志门面,简单理解就是个模型,并非具体实现的日志系统,但提供提供了统一的日志使用接口
配置本地文件保存日志
在没有配置的情况下,SpringBoot默认将日志打印在控制台上,我们现在需要在文件中保存日志,那么我们就需要做以下操作
- 先在resource文件夹下创建一个叫logback-spring.xml的配置文件
- 按照给出的格式书写配置文件(这里使用的是springboot预设好的日志格式)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--导入预设配置文件-->
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<!--这个是控制台打印的配置-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>${CONSOLE_LOG_CHARSET}</charset>
</encoder>
</appender>
<!--下面是文件打印的配置-->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>${FILE_LOG_CHARSET}</charset>
</encoder>
<!-- 自定义滚动策略,防止日志文件无限变大,也就是日志文件写到什么时候为止,重新创建一个新的日志文件开始写 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 文件保存位置以及文件命名规则,这里用到了%d{yyyy-MM-dd}表示当前日期,%i表示这一天的第N个日志 -->
<FileNamePattern>log/%d{yyyy-MM-dd}-spring-%i.log</FileNamePattern>
<!-- 到期自动清理日志文件 -->
<cleanHistoryOnStart>true</cleanHistoryOnStart>
<!-- 最大日志保留时间 -->
<maxHistory>7</maxHistory>
<!-- 最大单个日志文件大小 -->
<maxFileSize>10MB</maxFileSize>
</rollingPolicy>
</appender>
<!--最后在这里配置启用 -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</configuration>