一個可用的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可以實現日志文件壓縮。