<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!-- 加载日志环境相关配置 -->
<springProperty scope="context" name="logLevel" source="log.level" />
<springProperty scope="context" name="logOutPath" source="log.out.path" />
<!-- 日志输出格式:%d表示日期,%X{requestId}表示mdcid,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<property name="logPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{requestId}] [%thread] %-5level %logger{50} - %msg%n"/>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${logPattern}</pattern>
</encoder>
</appender>
<!-- 设置分割 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 设置按尺寸和时间(同时满足)分割 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<!--<FileNamePattern>${logOutPath}/info.log.%d{yyyy-MM-dd-HH-mm}.log</FileNamePattern>-->
<FileNamePattern>${logOutPath}/info.log.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
<!--文件最大大小-->
<MaxFileSize>10MB</MaxFileSize>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${logPattern}</pattern>
</encoder>
<!-- 输出的日志级别 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>${logLevel}</level>
</filter>
</appender>
<!-- 配置定时任务启动时找不到默认的定时任务报错而使用info级别(不影响使用) -->
<logger name="org.springframework.scheduling">
<level value="info" />
</logger>
<!--myibatis log configure-->
<logger name="com.apache.ibatis" level="TRACE"/>
<logger name="java.sql.Connection" level="DEBUG"/>
<logger name="java.sql.Statement" level="DEBUG"/>
<logger name="java.sql.PreparedStatement" level="DEBUG"/>
<!-- 日志输出级别 -->
<root level="${logLevel}">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
logLevel 和 logOutPath 是配置在相应的 .properties 配置文件中的,自己根据不同的环境配置日志的输出格式和日志输出的路径就可以了,可以直接复制代码内容,新建一个 logback-spring.xml 文件,放在项目的 resources目录下就好了。