求助:Spring Tool Suite 4控制台大量打印线程日志,无法查看自定义输出
解决Spring Tool Suite 4中Spring Boot应用无关日志刷屏问题
我太懂这种控制台被一堆无关日志淹没、根本找不到自己代码输出的烦躁了——之前调试项目时也碰到过一模一样的情况,给你几个亲测有效的解决办法:
调整Spring Boot核心日志配置
这是最直接的方案,在项目的application.properties(或application.yml)里添加日志级别控制:# 把全局根日志级别设为WARN,过滤掉大部分Debug/Info级别的无关日志 logging.level.root=WARN # 把你自己代码所在的包设为INFO(或DEBUG,看你需要),确保自己的输出能显示 logging.level.com.yourproject.yourpackage=INFO替换
com.yourproject.yourpackage为你实际的代码包路径就行,这样既能屏蔽大部分框架、第三方库的冗余日志,又能保留自己代码的输出。利用STS控制台的过滤功能
STS的Console视图右上角有个漏斗形状的「Filter」按钮,点击后可以设置过滤规则:- 如果你想排除特定前缀的日志,比如Spring框架的日志,可以输入正则表达式
^(?!.*org.springframework).*$,这样就会隐藏所有以org.springframework开头的日志条目; - 也可以直接输入你自己代码输出里的关键词(比如你的类名、自定义的日志前缀),让控制台只显示包含这些关键词的内容,精准定位自己的输出。
- 如果你想排除特定前缀的日志,比如Spring框架的日志,可以输入正则表达式
检查并清理多余的日志依赖
有时候项目依赖里会引入额外的日志组件或自动配置,导致日志输出泛滥。你可以用STS的依赖分析工具排查:
右键项目 → 「Run As」→ 「Maven Dependency Analyzer」(Maven项目),查看是否有重复或不必要的日志相关依赖(比如log4j-over-slf4j这类冲突包),找到后在pom.xml里用<exclusions>标签排除掉。自定义Logback日志配置(进阶方案)
如果需要更精细的日志控制,比如不同包用不同输出格式、单独输出到文件等,可以在src/main/resources下新建logback-spring.xml,示例配置如下:<?xml version="1.0" encoding="UTF-8"?> <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="com.yourproject.yourpackage" level="INFO" additivity="false"> <appender-ref ref="CONSOLE"/> </logger> <!-- 全局其他日志设为WARN级别 --> <root level="WARN"> <appender-ref ref="CONSOLE"/> </root> </configuration>这个配置能完全掌控哪些日志显示、哪些隐藏,灵活性拉满。
内容的提问来源于stack exchange,提问作者sagar limbu




