Spring 的日志在输出的时候,出现了类似 -e[0;39m e[2m[ 的错误。
[](https://cdn.ossez.com/discourse-uploads/original/1X/e5d28e955ce53e29985a0f7b9664431ac12d7888.png "Spring-log-error")
原因和问题解决
能够出现上面的原因是你的控制台输出工具不支持 ANSI 彩色字符,但是你的 Spring 配置文件中又强制了使用彩色字符。
查找你的 Spring 配置文件:application.properties 中的配置:
spring.output.ansi.enabled=ALWAYS
如果你看到上面的参数是 ALWAYS 的话,你需要调整使用为:DETECT
这个配置选项有 3 个参数:
- ALWAYS:总是输出彩色日志
- DETECT:根据控制台的情况确定是否输出彩色日志
- NEVER:永远不输出彩色日志
修改后的配置参数应该为:
spring.output.ansi.enabled=DETECT
[](https://cdn.ossez.com/discourse-uploads/original/1X/060d420bede9711bbc3903a081cf173021ad6940.png "Spring-log-error-01")
然后重新编译后重新运行。
然后检查日志后,你就可以发现你的日志能够显示正常,而不是显示错误的字符了。
[](https://cdn.ossez.com/discourse-uploads/original/1X/9023901dbdf3aa30a32e7744ac04cbf095b74308.png "Spring-log-error-02")
其实上面的特殊字符就是 Spring 日志文件中的配色, ANSI 会根据上面的配色来进行显示。