Springboot整合日志

导入依赖
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>

该依赖中包含了日志所需的依赖,所以只导入这个依赖足够了。


配置文件

文件建在resources文件夹下

logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">

	<!-- property 用于配置变量,可通过${LOG_PATH}取对应的值 a -->
	<!-- 定义日志的存储地址,不要在配置中使用相对路径 -->
	<property name="LOG_PATH" value="D:/Java Code/testmaven06calculation/log/" />
	<property name="PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level line:%line %logger{50} %msg%n" />

	<contextName>logback</contextName>

	<!-- 输出到控制台,一个appender定义一种输出策略,可以定义多个a -->
	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
		<!-- filter中定义要输出的日志级别,默认是info -->
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>info</level>
		</filter>
		<!-- 日志输出编码格式化 -->
		<encoder>
			<pattern>
				${PATTERN}
			</pattern>
			<charset>UTF-8</charset>
		</encoder>
	</appender>

	<!-- 输出到文件debug,日期滚动记录a -->
	<appender name="logDebugFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<!--<Prudent>true</Prudent> -->
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<!-- 过滤 其他只留debug -->
			<level>debug</level>
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>
		<!-- 滚动策略 按照时间滚动TimeBasedRollingPolicy每天会生成一个日志文件a -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<!-- 文件路径 定义了日志的切分方式 防止日志填满磁盘 -->
			<fileNamePattern>
				${LOG_PATH}/debug/log-debug-%d{yyyy-MM-dd}.log
			</fileNamePattern>
			<!-- 日志保留天数 -->
			<maxHistory>7</maxHistory>
			<!-- 用来指定日志文件的上下限大小 到了这个值就是删除旧日志 -->
			<totalSizeCap>1GB</totalSizeCap>
		</rollingPolicy>
		<append>true</append>
		<!-- 日志输出编码格式化 -->
		<encoder>
			<charset>GBK</charset>
			<pattern>${PATTERN}</pattern>
		</encoder>
	</appender>

	<!-- 输出到文件info,日期滚动记录a -->
	<appender name="logInfoFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<!--<Prudent>true</Prudent> -->
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<!-- 过滤 其他只留info -->
			<level>info</level>
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>
		<!-- 滚动策略 按照时间滚动TimeBasedRollingPolicy每天会生成一个日志文件a -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<!-- 文件路径 定义了日志的切分方式 防止日志填满磁盘 -->
			<fileNamePattern>
				${LOG_PATH}/info/log-info-%d{yyyy-MM-dd}.log
			</fileNamePattern>
			<!-- 日志保留天数 -->
			<maxHistory>7</maxHistory>
			<!-- 用来指定日志文件的上下限大小 到了这个值就是删除旧日志 -->
			<totalSizeCap>1GB</totalSizeCap>
		</rollingPolicy>
		<append>true</append>
		<!-- 日志输出编码格式化 -->
		<encoder>
			<charset>GBK</charset>
			<pattern>${PATTERN}</pattern>
		</encoder>
	</appender>
	
	<!-- 输出到文件WARN,日期滚动记录a -->
	<appender name="logWarnFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<!--<Prudent>true</Prudent> -->
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<!-- 过滤 其他只留info -->
			<level>warn</level>
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>
		<!-- 滚动策略 按照时间滚动TimeBasedRollingPolicy每天会生成一个日志文件a -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<!-- 文件路径 定义了日志的切分方式 防止日志填满磁盘 -->
			<fileNamePattern>
				${LOG_PATH}/warn/log-warn-%d{yyyy-MM-dd}.log
			</fileNamePattern>
			<!-- 日志保留天数 -->
			<maxHistory>7</maxHistory>
			<!-- 用来指定日志文件的上下限大小 到了这个值就是删除旧日志 -->
			<totalSizeCap>1GB</totalSizeCap>
		</rollingPolicy>
		<append>true</append>
		<!-- 日志输出编码格式化 -->
		<encoder>
			<charset>GBK</charset>
			<pattern>${PATTERN}</pattern>
		</encoder>
	</appender>

	<!-- 输出到文件error,日期滚动记录a -->
	<appender name="logErrorFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<!--<Prudent>true</Prudent> -->
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<!-- 过滤 其他只留info -->
			<level>error</level>
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>
		<!-- 滚动策略 按照时间滚动TimeBasedRollingPolicy每天会生成一个日志文件a -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<!-- 文件路径 定义了日志的切分方式 防止日志填满磁盘 -->
			<fileNamePattern>
				${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.log
			</fileNamePattern>
			<!-- 日志保留天数 -->
			<maxHistory>7</maxHistory>
			<!-- 用来指定日志文件的上下限大小 到了这个值就是删除旧日志 -->
			<totalSizeCap>1GB</totalSizeCap>
		</rollingPolicy>
		<append>true</append>
		<!-- 日志输出编码格式化 -->
		<encoder>
			<charset>GBK</charset>
			<pattern>${PATTERN}</pattern>
		</encoder>
	</appender>

	<!-- 将上面两种策略添加到节点 -->
	<root level="info">
		<appender-ref ref="console" />
		<appender-ref ref="logDebugFile" />
		<appender-ref ref="logInfoFile" />
		<appender-ref ref="logWarnFile" />
		<appender-ref ref="logErrorFile" />
	</root>

	<!-- 开发环境 -->
	<!-- <springProfile name="dev"> <root level="debug"> <appender-ref ref="logInfoFile"/> <appender-ref ref="logErrorFile"/> <appender-ref ref="console"/> </root> </springProfile> -->

	<!-- 生产环境 -->
	<!-- <springProfile name="pro"> <root level="INFO"> <appender-ref ref="logInfoFile"/> <appender-ref ref="logErrorFile"/> <appender-ref ref="console"/> </root> </springProfile> -->
</configuration>

在yml文件中写入logback-spring.xml路径

application.yml
logging:
  config: src/main/resources/logback-spring.xml
  level:
    '[testmaven06calculation.com.cal.res]': DEBUG

日志配置文件中标签作用
标签属性描述
configuration 日志配置的根标签
 scan设置配置重载,当为true时,配置的变化会被日志框架重载
 scanPeriod设置监测配置更改时间
 debugdebug模式,为true时还会打印内部日志
conversionRule 彩色日志依赖的渲染类
 conversionWord渲染类的名称
 converterClass此配置对应的类地址
property 自定义变量,此参数可以在下面的配置中使用
数据加载时有顺序的,参数配置需要咋使用它之前完成
 name参数名称
 value参数值
appender 设置日志输出子节点
 name子节点名称
 class对应的类
ch.qos.logback.core.rolling.RollingFileAppender文件输出
ch.qos.logback.classic.filter.LevelFilter控制台输出
layout 配置控制台显示格式
 class格式配置的处理类
filter 过滤方法的配置
 class使用的过滤器
evaluator 过滤器使用ch.qos.logback.core.boolex.EventEvaluator完成不同逻辑的拦截处理
 class对应的EventEvaluator
onMatch 当过滤器匹配的时候需要进行的操作
DENY:拒绝操作
NEUTRAL:此过滤器不处理交由下一个过滤器处理
ACCEPT:同意操作
onMismatch 当过滤器不匹配的时候需要进行的操作
DENY:拒绝操作
NEUTRAL:此过滤器不处理交由下一个过滤器处理
ACCEPT:同意操作
rollingPolicy 循环策略
 class循环策略对应的处理类
FileNamePattern 设置日志文件输出的文件名
MaxHistory 设置日志保留天数
encoder 用来设置日志的输出格式
pattern 设置输出格式的字符串
charset 设置字符集。控制台输出UTF-8,文件输出GBK
triggeringPolicy 循环策略触发器
 class触发器对应的处理类
MaxFileSize 文件大小设置
root 根节点,可以通过appender-ref将子节点配置合并
 level日志基础级别设置,可选参数TRACE,DEBUG,INFO,WARN,ERROR,ALL,OFF
appender-ref 引入子节点的操作
 ref子节点地址

日志输出格式
格式说明
%d{yyyy-MM-dd HH:mm:ss}日志输出时间
%thread输出日志的进程名字
%-5level日志级别,使用5个字符靠左对齐
%logger日志输出者名字
%msg日志消息
%n平台换行符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值