一个可用的logback日志配置示例参考:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <springProperty scope="context" name="logging.path" source="logging.path"/> <springProperty scope="context" name="application.name" source="spring.application.name"/> <!-- 控制台打印日志的相关配置 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- 日志格式 --> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%level] - %m%n</pattern> <!--<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>--> </encoder> <!-- 日志级别过滤器 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 过滤的级别 --> <level>info</level> <!-- 匹配时的操作:接收(记录) --> <onMatch>ACCEPT</onMatch> <!-- 不匹配时的操作:拒绝(不记录) --> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- 文件保存日志的相关配置 --> <appender name="FILE-OUT" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 保存日志文件的路径 --> <file>${logging.path}/${application.name}.log</file> <!-- 日志格式 --> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%class:%line] - %m%n</pattern> <!--<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>--> </encoder> <!-- 日志级别过滤器 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 过滤的级别 --> <level>info</level> <!-- 匹配时的操作:接收(记录) --> <onMatch>ACCEPT</onMatch> <!-- 不匹配时的操作:拒绝(不记录) --> <onMismatch>DENY</onMismatch> </filter> <!-- 循环政策:基于时间创建日志文件 --> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- 日志文件名格式 --> <fileNamePattern>${logging.path}/${application.name}.%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern> <!-- 最大保存时间:30天--> <maxHistory>30</maxHistory> <!--单文件最大占用多少M--> <maxFileSize>100MB</maxFileSize> <!--最多保留20GB日志--> <totalSizeCap>20GB</totalSizeCap> </rollingPolicy> </appender> <!-- 基于dubug处理日志:具体控制台或者文件对日志级别的处理还要看所在appender配置的filter,如果没有配置filter,则使用root配置 --> <root level="debug"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE-OUT" /> </root> <!--打印sql--> <logger name="com.xingan.customized.bus.interceptor.MyPerformanceInterceptor" additivity="false" level="DEBUG"> <appender-ref ref="STDOUT"/> <appender-ref ref="FILE-OUT"/> </logger> </configuration>
1. 加载顺序:logback.xml--->application.properties--->logback-spring.xml. 如果logback中要使用spring中的变量,要使用logback-spring.xml这个文件名。
2. 关于打印mybatis-plus的sql语句到日志文件中,没有找到合适的方法,这里是通过修改了PerformanceInterceptor插件实现的,只需把对于的logger,去掉,通过@Slf4j注解....,最后通过logger来打印就好了。
3. 通过rollingPolicy.fileNamePattern指定后缀gz可以实现日志文件压缩。