最新补充:

如果使用的是application.properties进行配置,则需要配置下面项目:

spring.output.ansi.enabled=always  # 需要将其设置为always

Spring默认使用Logback来进行日志输出,同时,控制台不同参数输出为不同的颜色,看起来逼格很高。

但是,当我们使用自己默认的配置的时候,彩色消失了。我想,在源码中,肯定有默认的配置,所以就去源码中找了一圈,很快就找到了,这里和大家分享下。

默认的配置位置:(SpringBoot 2.1.0 版本)

org.springframework.boot.logging.logback 包下 defaults.xml 文件中,配置了相关属性。
<included>
	<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
	<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
	<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
	<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}}"/>
	<property name="FILE_LOG_PATTERN" value="${FILE_LOG_PATTERN:-%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
	<logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
	<logger name="org.apache.catalina.util.LifecycleBase" level="ERROR"/>
	<logger name="org.apache.coyote.http11.Http11NioProtocol" level="WARN"/>
	<logger name="org.apache.sshd.common.util.SecurityUtils" level="WARN"/>
	<logger name="org.apache.tomcat.util.net.NioSelectorPool" level="WARN"/>
	<logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="ERROR"/>
	<logger name="org.hibernate.validator.internal.util.Version" level="WARN"/>
</included>

我们可以看到,CONSOLE_LOG_PATTERN 参数就是默认的 输出格式配置。我们可以通过在application.properties文件中修改属性logging.pattern.console属性,来定制自己需要的彩色输出。这里,分享一下我自己修改的日志输出格式:

logging.pattern.console=%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(---){faint} %clr(%-80.80logger{79}){cyan} %clr(:){faint} %m%n

去掉了 线程名 节点,调整了类名的长度限制。

如果希望使用自定义的logback.xml,则需要加上 相应的转换器类:

<substitutionProperty name="log.pattern" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(---){faint} %clr(%-80.80logger{79}){cyan} %clr(:){faint} %m%n%wEx"/>
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <pattern>${log.pattern}</pattern>
    </encoder>
</appender>

效果展示:

最新补充:如果使用的是application.properties进行配置,则需要配置下面项目:spring.output.ansi.enabled=always # 需要将其设置为alwaysSpring默认使用Logback来进行日志输出,同时,控制台不同参数输出为不同的颜色,看起来逼格很高。但是,当我们使用自己默认的配置的时候,彩色消失了。我想,在源码中,肯定有默认的配置... SLF4J——Simple Logg ing Facade For Java,它是一个针对于各类Java 日志 框架的统一Facade抽象。Java 日志 框架众多——常用的有java.util. logg ing, log4j, logback ,commons- logg ing, Spring框架使用的是Jakarta Commons Logg ing API (JCL)。而SLF4J定义了统一的 日志 抽象接口,而真正的 日志 实现则是在运行时决定的——它提供了各类 日志 框架的binding。 Logback 是log4j框架
日志 配置 颜色 没有 颜色 日志 输出 ,在日常开发环境中是很苦恼的一件事情。 logback 可以很好的解决这个问题,解决办法也非常简单:第一步:定义一个 颜色 patt er n变量 <prop er ty name="CONSOLE_LOG_PATT ER N" value="%date{yyyy-MM-dd HH:mm:ss} | %highlight(%-5level) | %boldY
springboot 中的默认 配置 logback /defaults.xml <included> <conv er sionRule conv er sionWord="clr" conv er t er Class="org.springframework.boot. logg ing. logback .ColorConv er t er " /> <conv er sionRule conv er sionWord="wex" conv er t er Class="org.springframework.boot.
Spring默认使用 Logback 来进行 日志 输出 ,同时, 控制台 不同参数 输出 为不同的 颜色 ,看起来逼格很高。但是,当我们使用自己默认的 配置 的时候, 彩色 消失了。我想,在源码中,肯定有默认的 配置 ,所以就去源码中找了一圈,很快就找到了,这里和大家分享下。 默认的 配置 位置:( SpringBoot 2.1.0 版本) springboot 默认的 日志 格式 为: %d{yyyy-MM-dd HH:... 2. 在 IDEA 中,点击Run -> Edit Configurations -> Configuration -> VM options,在VM options中添加以下参数: -Dfile.encoding=UTF-8 3. 检查操作系统的默认编码是否与项目中的编码一致,如果不一致,需要将操作系统的默认编码设置为UTF-8。 4. 检查 控制台 所使用的字体是否支持中文字符集,如果不支持,需要更换字体。 5. 如果还是无法解决问题,可以考虑使用第三方 日志 库,如 logback ,来代替 springboot 默认的 日志 库。