IntelliJ IDEA Run/Debug标签日志格式变为JSON格式,如何恢复默认格式?
恢复Spring Boot默认日志格式(解决JSON日志问题)
别担心,这种情况我之前开发Spring Boot项目时也碰到过,大概率是日志相关的配置或依赖被无意中改动了。下面几个排查方向帮你快速恢复成易读的默认日志格式:
1. 检查项目依赖是否引入了JSON日志组件
有些工具类依赖会自动把日志转换成JSON格式,比如logstash-logback-encoder、log4j-layout-template-json这类。
- 如果你用Maven,打开
pom.xml搜索这些依赖,确认是不是不小心引入了;如果是Gradle就查看build.gradle。 - 如果找到这类依赖,要么直接移除(如果不需要JSON日志输出场景),要么调整日志配置来区分控制台和文件的输出格式。
2. 检查Spring Boot的日志配置文件
Spring Boot默认用SLF4J+Logback,先看看项目里有没有自定义的日志配置文件:
- 比如
logback.xml、logback-spring.xml、log4j2.xml这类文件,检查控制台输出的编码器(encoder):- 如果看到用了
net.logstash.logback.encoder.LogstashEncoder这类JSON编码器,改成默认的PatternLayoutEncoder并设置标准日志格式。示例配置:<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!-- Spring Boot默认的控制台日志格式 --> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="info"> <appender-ref ref="CONSOLE"/> </root> </configuration>
- 如果看到用了
- 如果用的是
application.properties或application.yml配置:- 检查有没有
logging.pattern.console配置项,如果被改成了JSON模板,替换成默认格式:
或者YAML格式:# application.properties 中的默认控制台日志格式 logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n# application.yml logging: pattern: console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"
- 检查有没有
3. 检查IDEA的Run/Debug配置
有时候会在IDEA的运行配置里不小心添加了VM参数,指定了输出JSON的日志配置:
- 打开Run/Debug Configurations,找到你的Spring Boot应用配置,查看
VM options里有没有类似-Dlogging.config=classpath:logback-json.xml的参数,如果有,要么移除这个参数,要么换成正确的默认日志配置文件路径。
4. 检查Spring Boot激活的Profile
如果项目用了多Profile配置,比如application-dev.yml里单独配置了JSON日志,而你不小心激活了这个Profile:
- 检查
application.properties里的spring.profiles.active配置,或者IDEA运行配置里的Active profiles选项,确认是不是激活了带JSON日志配置的Profile。
按照上面的步骤排查,一般就能把日志恢复成默认的易读格式啦!
内容的提问来源于stack exchange,提问作者M.Waqas Pervez
相关产品推荐
相关产品推荐

