即使使用spring.output.ansi.enabled = NEVER,Spring Boot仍会输出颜色

时间:2018-03-15 13:37:57

标签: java spring spring-boot

我想完全禁用Spring Boot输出中的颜色,因为日志将被视为纯文本,而不是终端。

如果我传入--spring.output.ansi.enabled=NEVER作为命令行参数,它会禁用某些颜色,例如说Spring Boot的文本,但后面的日志会像往常一样丰富多彩。如何完全禁用所有颜色?

2 个答案:

答案 0 :(得分:0)

我与logback.xml有类似的问题。通过将withJansi设置为false并消除图案中的颜色来解决此问题。像这样:

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <withJansi>false</withJansi>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

答案 1 :(得分:0)

如果您想在命令行上传递参数,我相信您已指定了系统属性 spring.output.ansi.enabled,而不是应用程序的“参数”。您可以使用Java的-D选项执行此操作。像这样:

$ java -Dspring.output.ansi.enabled=NEVER -jar your-spring-boot-app-here.jar

或者,您可以将application.properties放置在项目的src / main / resources /目录中,其中包含以下内容:

spring.output.ansi.enabled=NEVER

尽管我建议将属性设置为DETECT而不是NEVER。至少在原则上,这应该自动检测标准输出是绑定到终端还是文件,并且在重定向到不支持颜色输出的设备时,将自动禁用颜色输出。不确定该功能的运行情况如何。