SpringBoot项目创建后,便可以直接使用日志。默认打印在控制台。但有时我们需要自定义日志的级别,甚至希望不同包输出不同的日志级别。或者希望将日志信息保存到文件中,方便存档 。【见上一篇 SpringBoot中日志的简单使用。】
在生产环境中,我们经常需要根据日期自动生成日志,并做备份,这就需要用logback-spring.xml文件做详细的配置。需要创建logback-spring.xml并放置到resource目录下。
自定义logback日志配置文件:
- 日志配置模板一:简单配置(复制修改日志文件存储路径即可测试)
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!--property用于配置变量,可通过${LOG_PATH} 取对应的值-->
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_PATH" value="G:/iotLog2"/>
<property name="PATTERN" value=""/>
<contextName>logback</contextName>
<!--输出到控制台,一个appender定义一种输出策略,可以定义多个-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!--filter中定义要输出的日志级别,例如:输出info级别以上的日志,默认是info-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
<!--日志输出编码格式化-->
<encoder>
<pattern>
%d{yyyy-MM-dd} = [%thread] = %-5level = %logger{50} = %msg%n
</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 输出到文件info,日期滚动记录 -->
<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 每天会生成一个日志文件-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--文件路径,定义了日志的切分方式,以防止日志填满整个磁盘空间-->
<fileNamePattern