Skip to content

Spring

主要特性

安装

常用配置

logback

默认加载

  • src/main/resources/logback-spring.xml

参考配置

xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <property
            name="LOG_PATH"
            value="/v/log/spring" />

    <property
            name="LOG_PATTERN"
            value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX} %-5level %class{20}:%method:%line - [%thread] traceId:%X{traceId} - %msg%n" />

    <appender
            name="CONSOLE"
            class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>


    <!-- File appender -->
    <appender
            name="FILE"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_PATH}/app.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/app.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <root level="DEBUG">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>

    <logger
            name="org.springframework"
            level="WARN" />
</configuration>

see also

常见问题

  • 没有 hot-reload 每次修改 src/main/resources/ 下配置需要重新编译
  • 编译耗时 ~10-40 秒 , 用 ./gradle bootRun 代替 ./gradlew build && java -jar build/libs/my-service-0.0.1-SNAPSHOT.jar
  • 默认自动加载 src/main/resources/application.properties
  • 如何实现自动 reload 配置,需自行编码实现

Unsupported class file major version xxx

Env

  • Apple M2
  • macOS 14.4
  • openjdk 23.0.1

BUG! exception in phase 'semantic analysis' in source unit 'BuildScript' Unsupported class file major version 67

Gradle 和 JDK 版本不兼容导致。修改 gradle/wrapper/gradle-wrapper.properties 后重新构建即可。

Gradle versionJDK versionError
8.1023... version 67

See also

Released under the CC-BY-NC-4.0