【SpringBoot】spring.output.ansi.enabled引起日志出现ESC[开头颜色日志

今日突然发现线上日志,通过linux less命令日志都乱了,这就导致kibana收集的日志无法分割都汇聚成一条记录了,直接导致kibana查询平台该索引下日志搜索极具缓慢。

故障现象

通过less 或 more命令查看日志结果如下图所示:
【SpringBoot】spring.output.ansi.enabled引起日志出现ESC[开头颜色日志

但是使用cat 或者 tail命令看到日志就是正常的,如下图:
【SpringBoot】spring.output.ansi.enabled引起日志出现ESC[开头颜色日志

问题很诡异,直接想到应该是logback配置问题,带着疑问,通过百度查询发现,如果基于SpringBoot项目通过ASNI打印ga日志,是高亮颜色以 \033[开头的,如下图:
【SpringBoot】spring.output.ansi.enabled引起日志出现ESC[开头颜色日志

这时候突然想到application.properties配置文件新增了一段配置

#控制台彩色输出
spring.output.ansi.enabled=ALWAYS

就这样,据此推理应该是其作用所致,把配置去掉,重新发布开发环境,通过less查看日志文件,不再有此情况。

排查结论

这么来说,ASNI编码日志会导致通过less或more命令查看日志文件出现ECS开头无法分割情况,因为logback实现ASNI彩色日志是以\033[开头 (ECS_START)。

【参考文章】:https://blog.****.net/u012693119/article/details/79716306

下面的是我的公众号二维码图片,欢迎关注。
【SpringBoot】spring.output.ansi.enabled引起日志出现ESC[开头颜色日志