之前敲出来一个 logback 的配置文件,防止以后找起来麻烦在这里存个档
- 修改了日志输出的内容
- 设置默认级别为 INFO
- 正常日志 ( TRACE 到 WARN ) 输出到单独的文件夹
- 异常日志 ( ERROR ) 输出到单独的文件夹
- 日志文件按天进行存储,每天都会新建日志文件
- 日志文件存储在当前项目目录下
配置文件命名为
logback-spring.xml
放到resources
目录下会自动生效,代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!--
日志级别:TRACE < DEBUG < INFO < WARN < ERROR
scan:当配置文件发生改变是否会自动加载,默认true
scanPeriod:检查配置文件是否被改变的间隔时间,默认1分钟
debug:是否打印logback内部的日志信息,默认false
-->
<configuration scan="true" scanPeriod="10 seconds" debug="false">
<!-- 配置控制台日志输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!-- 设置打印规则 -->
<layout class="ch.qos.logback.classic.PatternLayout">
<!-- 【%d 时间】【%p 级别】【%c 所在类】【%m 所在函数】【%l 所在行】 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%p][%c{4}][%M][%L]——> %m%n</pattern>
</layout>
</appender>
<!-- 配置文件日志输出——info -->
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 如果检测到了ERROR日志就不输出,否则输出 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>DENY</onMatch>
<onMismatch>accept</onMismatch>
</filter>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%p][%c{4}][%M][%L]——> %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>info/%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
</appender>
<!-- 配置文件日志输出——error -->
<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 控制输出级别为ERROR -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%p][%c{4}][%M][%L]——> %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>error/%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
</appender>
<!-- 所有日志相关都要在root中注册,被注册的配置如果没有设置日志打印级别会默认会使用level -->
<root level="INFO">
<!-- 添加控制台的日志配置 -->
<appender-ref ref="console" />
<appender-ref ref="fileInfoLog" />
<appender-ref ref="fileErrorLog" />
</root>
</configuration>