一、項目環境及說明
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)生成日誌樣式
說明:此種樣式是按天生成日誌。