项目日志(slf4j + logback)

一、项目环境及说明

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)生成日志样式

说明:此种样式是按天生成日志。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章