SpringBoot之配置logback日志
在resources目录下新建logback.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!--
scan:默认值为true,表示配置文件如果发生变化将会被重新加载;
scanPeriod:监测配置文件是否发生变化的时间间隔,默认时间单位为毫秒,当scan值为true时才会生效;
debug:默认值为false,当该属性值为true时,将打印出logback内部日志信息,实时查看logback运行状态.
-->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 引入默认配置,就可以使用其中的CONSOLE_LOG_PATTERN属性输出彩色日志了 -->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<!-- 声明日志文件存储路径 -->
<property name="log.path" value="logs/springboot_pattern" />
<!-- 声明日志信息输出格式 -->
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{20} : %msg%n" />
<!-- 控制台输出配置 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- 正常日志信息的文件输出配置 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 配置正常日志信息文件名称 -->
<file>${log.path}/info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 配置单个日志文件的最大大小,超出该大小按照fileNamePattern中配置的文件名中的%i进行文件滚动 -->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 日志最大的历史天数: 31天 -->
<maxHistory>31</maxHistory>
</rollingPolicy>
<encoder>
<!-- 配置日志格式 -->
<pattern>${log.pattern}</pattern>
<!-- 配置日志编码方式 -->
<charset>UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 配置过滤的日志级别 -->
<level>INFO</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 错误日志信息的文件输出配置 -->
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 配置错误日志信息文件名称 -->
<file>${log.path}/error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 配置单个日志文件的最大大小,超出该大小按照fileNamePattern中配置的文件名中的%i进行文件滚动 -->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 日志最大的历史天数: 31天 -->
<maxHistory>31</maxHistory>
</rollingPolicy>
<encoder>
<!-- 配置日志格式 -->
<pattern>${log.pattern}</pattern>
<!-- 配置日志编码方式 -->
<charset>UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 配置过滤的日志级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 系统模块日志级别控制 -->
<!--<logger name="com.springboot.pattern" level="info" />-->
<!-- Spring日志级别控制 -->
<!--<logger name="org.springframework" level="warn" />-->
<!--系统操作日志-->
<root level="info">
<appender-ref ref="console" />
<appender-ref ref="file_info" />
<appender-ref ref="file_error" />
</root>
</configuration>