You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Spring Boot中配置日志级别以屏蔽框架及Hibernate控制台调试日志

解决Spring和Hibernate调试日志泛滥,仅保留自定义日志的方案

你已经找对了方向,只需要再精准调整日志级别的控制逻辑,就能实现只看自定义DEBUG日志、屏蔽框架调试信息的需求。下面是具体的优化方案:

1. 修正app.yml日志配置

核心思路是:全局默认日志级别设为INFO,仅给你的自定义代码所在包开启DEBUG,同时明确指定Spring和Hibernate的日志级别为INFO,彻底屏蔽它们的调试输出。修改后的配置如下:

logging:
  file: direct_delivery.log
  level:
    root: INFO  # 全局默认INFO,避免所有未指定的包输出DEBUG日志
    com.your.custom.package: DEBUG  # 替换成你自己代码的根包路径(比如com.example.directdelivery)
    org.springframework: INFO  # 整个Spring框架设为INFO,覆盖所有子模块
    org.hibernate: INFO  # Hibernate框架设为INFO
  pattern:
    file: '%d{yyyy-MM-dd HH:mm:ss} - %msg%n'

关键提醒:一定要把com.your.custom.package替换成你实际的自定义代码包路径,这样只有这个包下的日志会输出DEBUG级别内容。

2. 调整配置类中的Logger Bean

从你的代码片段看,你可能用了java.util.logging.Logger,但Spring Boot默认使用SLF4J+Logback作为日志框架,建议改用SLF4J的标准方式获取Logger,确保日志级别配置能正确生效:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig {
    @Bean
    public Logger logger() {
        // 推荐绑定到你的主类或者自定义包的Logger,确保日志级别匹配
        return LoggerFactory.getLogger(AppConfig.class);
        // 如果你想覆盖整个自定义包,也可以写:LoggerFactory.getLogger("com.your.custom.package");
    }
}

3. 验证效果

启动应用后,你会发现:

  • 控制台和日志文件里只会出现你自定义代码中用logger.debug()输出的内容
  • Spring框架和Hibernate的调试信息(比如SQL执行细节、Spring上下文初始化日志等)会被完全屏蔽,只保留INFO及以上级别的必要日志

内容的提问来源于stack exchange,提问作者Daria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:50:27