springboot 输出日志到文件

前段时间做了个功能是拦截请求信息打印log,后来日志因为太多所以单独输出到一个文件好分辨,及记录一下过程。

SpringBoot 日志相关

SpringBoot使用默认日志框架是Logback,并用INFO级别输出到控制台。
SpringBoot的日志级别:
TRANCE < DRBUG < INFO < WARN < ERROR <FATAL < OFF

#root 日志级别以WARN级别输出
logging.level.root=WARN

#springframework.web日志以DEBUG级别输出logging.level.org.springframework.web=DEBUG

默认情况下,SpringBoot将日志输出到控制台,不会写到日志文件中

SpringBoot 日志输出到文件

在application.properties中设置logging.file或logging.path属性

  • logging.file 可以用相对路径和绝对路径
logging.file=/log/my.log
  • logging.path设置目录,会在该目录下新建spring.log文件,并写入日志内容。
logging.path=/var/log
  • logging.file优先级高于logging.path
  • 默认情况下,日志文件大小达到10MB会切分一次,产生新的日志文件,默认界别为:ERROR、WARN、INFO
#root 日志级别以WARN级别输出
logging.level.root=WARN
#springframework.web日志以DEBUG级别输出logging.level.org.springframework.web=DEBUG
#相对路径
#logging.file=log/my.log
#把日志信息写入日志文件,会自动生成
logging.file=/var/logs/info.log
#配置控制台日志显示格式logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n
#配置文件中日志显示格式logging.pattern.file=%d{yyyy/MM/dd-HH:mm:ss}  [%thread] %-5level %logger- %msg%n

按业务输出到不同的文件中

思路

  • 自定义一个输出到文件的appender(理解为日志输出器)
  • 配置logger,logger的name为需要单独生成文件的那个包的全包名,然后在里面引用上面定义的appender

实现

  • 在resources下面定义一个logback-spring.xml
  • 将logback的默认配置(base.xml)内容copy到我们的xml文件中,因为我们想保留它的默认配置
  • 定义一个输出到文件的appender
  • 定义一个logger,logger的name为需要单独生成文件的那个包的全包名
  • logger里面引用我们上面定义的appender
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<!--保留官方配置,方便使用官方配置的特性,参考:spring-boot-2.1.0.RELEASE.jar!\org\springframework\boot\logging\logback\base.xml-->
	<include resource="org/springframework/boot/logging/logback/defaults.xml" />
	<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
	<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
	<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
	<root level="info">
		<appender-ref ref="CONSOLE" />
		<appender-ref ref="FILE" />
	 </root>


	<!-- 自定义配置__单独输出到一个日志文件中 -->
	<appender name="Biz_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<encoder>
			<pattern>${FILE_LOG_PATTERN}</pattern>
		</encoder>
		<file>${LOG_FILE}.BIZ.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
			<fileNamePattern>${LOG_FILE}_BIZ.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
			<maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>
			<maxHistory>${LOG_FILE_MAX_HISTORY:-0}</maxHistory>
		</rollingPolicy>
	</appender>



	<!-- 自定义配置__配置业务日志输出至单独的日志文件中 -->
	<logger name="com.jwx.digital.client.haier.http" additivity="false" level="debug">
		<!-- 引用自定义的appender -->
		<appender-ref ref="Biz_LOG"/>
		<!-- 这里也引用控制台appender,才能在控制台中看到我们的日志 -->
		<appender-ref ref="CONSOLE"/>
	</logger>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值