SpringBoot 日志 快速使用

1、快速使用说明

先说废话。SpringBoot(使用的2.0.6.RELEASE版本) 的日志默认使用slf4j+logback。引入web启动器的时候,默认会通过spring-boot-starters导入logging启动器。
快速使用的目的是配置最少的情况下满足最基本的日志需求。本次只需在application.properties中配置一个参数即可,其余可全部使用默认配置。

2、配置项

配置 logging.file,即可实现最基本的日志需求(补充:近来偶然发现高版本的SpringBoot中logging.file过时了,要使用 logging.file.name,功能一样)。配置后会在项目所在磁盘根目录下生成对应的目录和日志文件。不配置的话没有该效果。配置如下:

	logging.file=/centralCanteenParent/webUser.log

配置后看效果。
日志效果

3、解释说明

先来看SpringBoot默认的logback的配置文件位置。
logback配置文件位置
看file-appender.xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<!--
File appender logback configuration provided for import, equivalent to the programmatic
initialization performed by Boot
-->
<included>
	<appender name="FILE"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<encoder>
			<pattern>${FILE_LOG_PATTERN}</pattern>
		</encoder>
		<file>${LOG_FILE}</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
			<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
			<maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>
			<maxHistory>${LOG_FILE_MAX_HISTORY:-0}</maxHistory>
		</rollingPolicy>
	</appender>
</included>

LOG_FILE 对应 logging.file ,指的是日志输出的文件名。必须配置才有图中的效果。这个属性对应的值也正是我们需要根据项目自己设置的。
LOG_FILE_MAX_SIZE 对应 logging.file.max-size, 指的是输出文件大小限制,默认10MB。
LOG_FILE_MAX_HISTORY 对应 logging.file.max-history ,不为0时指的是压缩文件日志保存天数,默认为0,会一直保存。
${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz 这个正是生成的压缩文件的格式。它是按照文件大小限制及日期的滚动策略生成的。

滚动策略:看本文第一张配置后的效果图。先按大小判断,每当webUser.log大于10M时,就会生成一个压缩文件(i从0开始递增),且生成一个压缩文件后,webUser.log文件的内容会清空(之前的日志内容已经保存到了压缩文件中),然后接着记录下面的日志。然后是按照日期判断,当新的一天到来且有新的日志输出时,会直接生成一个压缩文件,然后清空webUser.log文件的内容来记录新的一天的日志(下图说明了这一点)。如此循环滚动。

再次看图说话(对比第一张图),10月4日再次启动项目,9月29日的日志内容被放进压缩包,webUser.log文件清空开始记录10月4日的日志。
再次输出日志

4、画足添蛇

当然,你可以选择设置 文件大小限制日志保留天数
然后说下这个 ${LOG_FILE_MAX_SIZE:-10MB} 的意思吧。使用的是Spring的占位符取值,如果你设置了文件大小限制的值,那么这里就会取到设置的值进行使用,否则就使用默认值10MB。在application.properties中,默认值只需要加个冒号即可,但SpringBoot的日志配置这里必须还要再加一个短横杠(并不是负数的意思),才能表示默认值。

另外,SpringBoot的日志默认root级别是info,所以如果要打印SQL语句,需要配置logging.level.com.food.mapper=DEBUG,其中com.food.mapper是我的数据层包路径。

甚至,你可以自己写一个 logback-spring.xml 文件,放在类路径下,覆盖掉SpringBoot日志的默认配置,但那已不在本篇快速使用讨论的范围之内了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值