spring boot-日志记录
slf4j介绍
slf4j,即简单日志门面(simple legging facade for java),部署具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,slf4j是一个用于日志系统的简单facde,允许最终用户在部署其应用时使用希望的日志系统
使用
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger log = LoggerFactory.getLogger(Test.class);
配置
springboot内部集成了slf4j,一般我们使用的时候,会对slf4j做一下配置
application.yml
logging:
config: logback.xml
level:
com.dqn.logdemo: debug
-
logging.config:指定项目启动的时候,读取哪个配置文件。默认classpath:logback.xml
-
logging.level:指定具体的日志输出级别
常用日志级别从高到低:error、warn、info、debug
设置位置文件后等价失效
logback.xml
定义日志输出格式:
<property name="log_pattern" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
- %date:时间
- %thread:线程名
- %-5level:级别从左显示5个字符宽度
- %logger{36}:logger名字最长36个字符
- %msg:日志消息
- %n:换行
定义存储路径:
<property name="file_path" value="logs/log.%d{yyyy-MM-dd}.%i.log" />
- %i:第i个文件,当日志文件达到指定大小时,会将日志生成到新的文件里
- %d:日期
输出到控制台:
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--格式-->
<pattern>${log_pattern}</pattern>
</encoder>
</appender>
日志文件参数:
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 按照上面配置的FILE_PATH路径来保存日志 -->
<fileNamePattern>${file_path}</fileNamePattern>
<!-- 日志保存15天 -->
<maxHistory>15</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 单个日志文件的最大,超过则新建日志文件存储 -->
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPoli
<encoder>
<!-- 按照上面配置的LOG_PATTERN来打印日志 -->
<pattern>${log_pattern}</pattern>
</encoder>
</appender>
日志输出级别:
<root level="warn">
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>