Spring 日志输出错误字符 - [

Spring 的日志在输出的时候,出现了类似 -e[0;39m e[2m[ 的错误。

原因和问题解决

能够出现上面的原因是你的控制台输出工具不支持 ANSI 彩色字符,但是你的 Spring 配置文件中又强制了使用彩色字符。

查找你的 Spring 配置文件:application.properties 中的配置:

spring.output.ansi.enabled=ALWAYS

如果你看到上面的参数是 ALWAYS 的话,你需要调整使用为:DETECT

这个配置选项有 3 个参数:

  • ALWAYS:总是输出彩色日志
  • DETECT:根据控制台的情况确定是否输出彩色日志
  • NEVER:永远不输出彩色日志

修改后的配置参数应该为:

spring.output.ansi.enabled=DETECT

然后重新编译后重新运行。

然后检查日志后,你就可以发现你的日志能够显示正常,而不是显示错误的字符了。

其实上面的特殊字符就是 Spring 日志文件中的配色, ANSI 会根据上面的配色来进行显示。