SpringBoot 修改日志输出等级

1. 通过配置文件设置

application.propertiesapplication.yml中直接配置日志级别。

示例(application.properties):

# 设置全局默认日志级别(例如 INFO)
logging.level.root=INFO

# 设置特定包的日志级别(例如将 Spring Web 的日志设为 DEBUG)
logging.level.org.springframework.web=DEBUG
logging.level.com.example.myapp=TRACE

示例(application.yml):

logging:
  level:
    root: INFO
    org.springframework.web: DEBUG
    com.example.myapp: TRACE

2. 通过命令行参数动态调整

在启动应用时通过命令行参数指定日志级别:

# 设置全局默认日志级别
java -jar myapp.jar --logging.level.root=DEBUG

# 设置特定包的日志级别
java -jar myapp.jar --logging.level.org.springframework.web=DEBUG

3. 使用 Spring Boot Actuator 动态调整(无需重启)

通过 Actuator 的/loggers端点动态修改日志级别(需先集成 Actuator)。

步骤:

  1. 添加依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    
  2. 暴露loggers端点(在application.properties中):

    management.endpoints.web.exposure.include=loggers
    
  3. 查看或修改日志级别

    • 查看当前配置
      GET /actuator/loggers
      
    • 修改特定包日志级别(例如设置为 DEBUG):
      POST /actuator/loggers/org.springframework.web
      Body: {"configuredLevel": "DEBUG"}
      

4. 自定义日志配置文件

对于更复杂的场景,可以通过自定义日志框架的配置文件(如 Logback)调整级别。

示例(logback-spring.xml):

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 设置特定包的日志级别 -->
    <logger name="org.springframework.web" level="DEBUG" />
     
     <!-- 设置全局默认日志级别 -->
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>

优先级说明

配置的优先级从高到低:

  1. 命令行参数
  2. application.properties/application.yml
  3. 自定义日志配置文件(如logback-spring.xml

总结

  • 简单调整:使用application.properties或命令行参数。
  • 动态调整:集成 Actuator 通过 HTTP API 修改。
  • 复杂配置:自定义日志框架配置文件(如 Logback)。

根据实际需求选择合适的方式即可。

来自:DeepSeek

posted @ 2025-05-12 00:17  Higurashi-kagome  阅读(1383)  评论(0)    收藏  举报