-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>