-Dspring.output.ansi.enabled=ALWAYS 设置彩色日志不生效
问题原因:
使用的自定义的 logback-spring.xml日志
需要改一下
<?xml version="1.0" encoding="UTF-8"?>
<configuration><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><!-- 使用 %clr{} 来启用颜色 --><pattern>%d{HH:mm:ss.SSS} [%thread] %clr(%-5level){bright} %clr(%logger){cyan} - %msg%n</pattern></encoder></appender><root level="INFO"><appender-ref ref="STDOUT"/></root>
</configuration>
引入之后,可能会报错
There is no conversion class registered for composite conversion word [clr]
需要一个转换器,引入一个默认的
<!-- 引入spirng boot默认的logback配置文件 --><include resource="org/springframework/boot/logging/logback/defaults.xml"/>
完整配置如下
<?xml version="1.0" encoding="UTF-8"?><configuration>
<!-- 引入spirng boot默认的logback配置文件 --><include resource="org/springframework/boot/logging/logback/defaults.xml"/><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><!-- 使用 %clr{} 来启用颜色 --><pattern>%d{HH:mm:ss.SSS} [%thread] %clr(%-5level){bright} %clr(%logger){cyan} - %msg%n</pattern></encoder></appender><root level="INFO"><appender-ref ref="STDOUT"/></root>
</configuration>
其中
%clr(%logger{cyan} 输出 logger 名称(通常是类的全限定名),并用青色显示, 类名过长的化,可以加个参数
%clr(%logger{36}){cyan},{36} 表示最多显示 36 个字符,超出部分省略
项目中一般用 标签用于定义变量,把它value改一下就行
如下
<?xml version="1.0" encoding="UTF-8"?>
<configuration><!-- 引入 Spring Boot 默认配置(支持 %clr 颜色) --><include resource="org/springframework/boot/logging/logback/defaults.xml"/><!-- 定义日志输出格式 --><property name="LOG_PATTERN" value="%d{HH:mm:ss.SSS} [%thread] %clr(%-5level){bright} %clr(%logger){cyan} - %msg%n"/><!-- 定义日志文件输出路径 --><property name="LOG_FILE_PATH" value="logs/app.log"/><!-- 控制台 Appender --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${LOG_PATTERN}</pattern></encoder></appender><!-- 文件 Appender --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_FILE_PATH}</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 每天生成一个日志文件 --><fileNamePattern>logs/app.%d{yyyy-MM-dd}.log</fileNamePattern><!-- 保留 7 天的日志 --><maxHistory>7</maxHistory></rollingPolicy><encoder><pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 根日志配置:输出到控制台和文件 --><root level="INFO"><appender-ref ref="STDOUT"/><appender-ref ref="FILE"/></root></configuration>