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