一、项目环境及说明
1、项目环境
springBoot2.X
Slf4j + logback 日志框架结合
2、说明
在项目中日志输出是很重要的一项,能够方便以后问题的排查。下面的演示是在springBoot2.x的基础上进行Slf4j + logback 日志框架结合,并且测试通过。
二、Slf4j + logback的配置及使用
1、需要的jar包
2、需要的pom配置
<!--日志-->
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-core -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.2</version>
</dependency>
3、logback.xml配置文件
(1)存放位置
放在resources下面
(2)配置细节
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">
<!--<property name="Tomcat_HOME" value="${catalina.home}/ETLLog" />-->
<!-- 默认日志以_info.log和_error.log结尾, 此处配置log的前缀 例如ATest_info.log、ATest_error.log -->
<property name="LOG_PREFIX" value="DataToCache" />
<!-- 日志文件目录, ./log代表日志输出到当前程序所在目录下的log目录下 -->
<property name="LOG_DIR" value="./log" />
<!-- info日志默认保存7天, 由于部分日志文件较大,可以修改该值 -->
<property name="MAX_HISTORY_INFO" value="100" />
<!-- error日志默认保存30天, 由于部分日志文件较大,可以修改该值 -->
<property name="MAX_HISTORY_ERROR" value="100" />
<!-- 输出日志到控制台 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-21thread] %-5level %logger{16} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 临界值过滤器 过滤掉低于临界值的日志 当日志界别等于或高于临界值时,过滤器返回NEUTRAL, 当日止界别低于临界值时,日志会被拒绝 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<!-- 输出info日志到文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_DIR}/${LOG_PREFIX}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>${LOG_DIR}/${LOG_PREFIX}.%d{yyyy-MM-dd}.%i.log </fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- keep 30 days' worth of history -->
<maxHistory>${MAX_HISTORY_INFO}</maxHistory>
</rollingPolicy>
<!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-21thread] %-5level %logger - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<root level="info">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
(3)生成日志样式
说明:此种样式是按天生成日志。