Spring boot 的彩色日志

我们基本上都知道 Spring 使用的是 logback 为日志配置的。

如果在你的项目中启用了你自己定义的 logback.xml 配置的话,本来是彩色的日志输出就变成黑白色了。

瞬间感觉有点没那么好看了,有没有什么办法让 Spring 在自己的项目中的日志输出也输出彩色呢?

如何修改配置

其实需要修改的地方有几个,但是都是比较简单的修改。

你只需要配置下就行了。

application.properties

在上面的配置文件中添加下面的配置:

spring.output.ansi.enabled=always

这里如果不配置的话,你的日志系统中将不会显示为彩色的日志。

如果你使用的 application.yml 为配置文件的话。

你的配置文件应该看起来如下:

spring:
  output:
    ansi:
      enabled: always

logback.xml

你项目中的 logback.xml 配置文件。

首先需要 include 下面的资源到 logback.xml 这个配置文件上面。

<include resource="org/springframework/boot/logging/logback/defaults.xml" />

然后在输出的 pattern 中,使用下面的配置

<pattern>${CONSOLE_LOG_PATTERN}</pattern>

这样你的控制台就可以输出彩色的配置了。

这样配置的原因很简单,因为 CONSOLE_LOG_PATTERN 这个参数是在资源 org/springframework/boot/logging/logback/defaults.xml 中定义的。

具体定义的内容为:

<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>

你可以访问下面的链接来查看官方的配置: https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot/src/main/resources/org/springframework/boot/logging/logback/defaults.xml

我们可以在这里直接引用在官方配置属性配置就可以了,这样你的配置文件就可以输出为彩色的日志了。

如上图,我们可以看到输出的彩色日志。