Spring general configuration file template (logback, pom and other configuration files)

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. . . .

 

Guess you like

Origin blog.csdn.net/zyplanke/article/details/117286328