This article mainly stores general-purpose configuration file templates, and most projects can be used out-of-the-box (or simply modified).
Log configuration file for Spring Boot
Spring Boot uses self4j + logback logging tools by default. Put logback-spring.xml in the resources folder, the content is as follows
<!-- 日志配置文件加载顺序: logback.xml → application.properties(yml) → logback-spring.xml -->
<!-- 官方推荐使用logback-spring.xml,因此它晚于application.properties(yml)加载,可以获得application.properties(yml)定义的变量 -->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 全局属性变量 -->
<springProperty scope="context" name="ROOT_DIR" source="logback.rootDir" defaultValue="logs"/>
<springProperty scope="context" name="APP_NAME" source="spring.application.name"/>
<!-- 保留日志的天数 -->
<property name="RETAINED_FILE_DAYS" value="90"/>
<!-- 同类日志占用的总空间大小(多天总和),超过将被删除 -->
<property name="TOTAL_SIZE_CAP" value="20GB"/>
<!-- 为后面引用打下基础,先按类别定义日志appender:控制台 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--<pattern>%d{yyyyMMdd HH:mm:ss.SSS,Asia/Shanghai} %-5level [%-15thread] %-50.50logger{49} : %m%n</pattern> -->
<pattern>%d{yyyyMMdd HH:mm:ss.SSS,Asia/Shanghai} %-5level [%-15thread] %-50.50(%class{43}:%line) : %m%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 为后面引用打下基础,先按类别定义日志appender:应用的日志文件 -->
<appender name="LOGFILE_APP" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${ROOT_DIR}/${APP_NAME}.log.%d{yyyyMMdd}</FileNamePattern>
<MaxHistory>${RETAINED_FILE_DAYS}</MaxHistory>
<totalSizeCap>${TOTAL_SIZE_CAP}</totalSizeCap>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<pattern>%d{yyyyMMdd HH:mm:ss.SSS,Asia/Shanghai} %-5level [%-15thread] %-50.50(%class{43}:%line) : %m%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 为后面引用打下基础,先按类别定义日志appender:仅存放错误的日志文件 -->
<appender name="LOGFILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- ThresholdFilter是临界值过滤,会把错误级别和更严重级别都输出-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>Error</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${ROOT_DIR}/${APP_NAME}.err.%d{yyyyMMdd}</FileNamePattern>
<MaxHistory>${RETAINED_FILE_DAYS}</MaxHistory>
<totalSizeCap>${TOTAL_SIZE_CAP}</totalSizeCap>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<pattern>%d{yyyyMMdd HH:mm:ss.SSS,Asia/Shanghai} %-5level [%-15thread] %-50.50(%class{43}:%line) : %m%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 为后面引用打下基础,先按类别定义日志appender:访问数据库的文件日志 -->
<appender name="LOGFILE_MYBATIS" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${ROOT_DIR}/${APP_NAME}.mybatis.log.%d{yyyyMMdd}</FileNamePattern>
<MaxHistory>${RETAINED_FILE_DAYS}</MaxHistory>
<totalSizeCap>${TOTAL_SIZE_CAP}</totalSizeCap>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<pattern>%d{yyyyMMdd HH:mm:ss.SSS,Asia/Shanghai} %-5level [%-15thread] %-50.50(%class{43}:%line) : %m%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 为后面引用打下基础,先按类别定义日志appender:访问数据库的文件日志 -->
<appender name="LOGFILE_HIBERNATE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${ROOT_DIR}/${APP_NAME}.hibernate.log.%d{yyyyMMdd}</FileNamePattern>
<MaxHistory>${RETAINED_FILE_DAYS}</MaxHistory>
<totalSizeCap>${TOTAL_SIZE_CAP}</totalSizeCap>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<pattern>%d{yyyyMMdd HH:mm:ss.SSS,Asia/Shanghai} %-5level [%-15thread] %-50.50(%class{43}:%line) : %m%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 对各个日志进行配置 -->
<logger name="org.mybatis" level="DEBUG" additivity="false">
<appender-ref ref="LOGFILE_MYBATIS"/>
</logger>
<logger name="org.hibernate" level="TRACE" additivity="false">
<appender-ref ref="LOGFILE_HIBERNATE"/>
</logger>
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" additivity="false">
<appender-ref ref="LOGFILE_HIBERNATE"/>
</logger>
<root level="INFO"> <!-- 大于等于此级别的日志才会输出 -->
<appender-ref ref="CONSOLE"/>
<appender-ref ref="LOGFILE_APP"/>
<appender-ref ref="LOGFILE_ERROR"/>
</root>
</configuration>
Maven packaging lib separation configuration
The default packaging of pom.xml in Maven. . . .