logback-spring.xml :
<?xml version="1.0" encoding="UTF-8"?>
<springProperty scope="context" name="LOG_HOME" source="logging.file.path"/>
<springProperty scope="context" name="LOG_ROOT_LEVEL" source="logging.level.root"/>
<springProperty scope="context" name="APPLICATION_NAME" source="spring.application.name"/>
<property name="LOG_FILE_MAX_SIZE" value="50MB"/>
<property name="LOG_FILE_MAX_HISTORY" value="10"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [${APPLICATION_NAME},%X{X-B3-TraceId},%X{X-B3-SpanId},%X{X-B3-ParentSpanId},%X{X-Span-Export}] %-5level %logger{50} - %msg%n
<appender name="FILE_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/debug.log
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}[%line] - %msg%n
<charset>UTF-8</charset>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/${APPLICATION_NAME}.debug.%i.log
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${LOG_FILE_MAX_SIZE}
<maxHistory>${LOG_FILE_MAX_HISTORY}
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG
<appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/info.log
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}[%line] - %msg%n
<charset>UTF-8</charset>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/${APPLICATION_NAME}.info.%i.log
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${LOG_FILE_MAX_SIZE}
<maxHistory>${LOG_FILE_MAX_HISTORY}
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO
<appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/error.log
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}[%line] - %msg%n
<charset>UTF-8</charset>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/${APPLICATION_NAME}.error.%i.log
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${LOG_FILE_MAX_SIZE}
<maxHistory>${LOG_FILE_MAX_HISTORY}
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR
<appender name="FILE_SQL" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/sql.log
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}[%line] - %msg%n
<charset>UTF-8</charset>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/${APPLICATION_NAME}.sql.%i.log
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${LOG_FILE_MAX_SIZE}
<maxHistory>${LOG_FILE_MAX_HISTORY}
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG
<root level="${LOG_ROOT_LEVEL}">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE_DEBUG"/>
<appender-ref ref="FILE_INFO"/>
<appender-ref ref="FILE_ERROR"/>
<logger name="com.hikvision.tsoa.*.*.mapper">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE_SQL"/>
</configuration>
application.yml :
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl