在spring boot中使用彩色日志,spring boot是默认支持彩色日志的,但是由于我又添加了自己的logback日志配置文件,然后就没有了彩色日志,经过一番搜索大法找到了一个完美还原spring boot的彩色日志。
下面是logback的日志配置彩色日志的配置信息:
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!-- 设置上下文名称 -->
<contextName>${log.context.name}</contextName>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_PATH" value="/LOG" />
<property name="log.context.name" value="MyApp" />
<property name="log.charset" value="UTF-8" />
<!-- Log4j: [S][%d{yyyyMMdd HH:mm:ss}][%-5p][%C:%L] - %m%n -->
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" />
<property name="log.pattern.short" value="%date{yyyyMMdd HH:mm:ss.SSS}-%msg%n" />
<!-- 彩色日志格式 -->
<property name="log.pattern.color" value="${CONSOLE_LOG_PATTERN:-%clr(%d{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}}" />
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder charset="${log.charset}">
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<appender name="STDOUT_SHORT" class="ch.qos.logback.core.ConsoleAppender">
<encoder charset="${log.charset}">
<pattern>${log.pattern.short}</pattern>
</encoder>
</appender>
<!-- 彩色日志 -->
<!-- 彩色日志依赖的渲染类 -->
<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" />
<!-- Console 输出设置 -->
<appender name="STDOUT_COLOR" class="ch.qos.logback.core.ConsoleAppender">
<encoder charset="${log.charset}">
<pattern>${log.pattern.color}</pattern>
</encoder>
</appender>
<!--mybatis log configure-->
<logger name="com.apache.ibatis" level="TRACE"/>
<logger name="java.sql.Connection" level="DEBUG"/>
<logger name="java.sql.Statement" level="DEBUG"/>
<logger name="java.sql.PreparedStatement" level="DEBUG"/>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="STDOUT_COLOR" />
</root>
</configuration>
如果配置了之后还是不生效,可以在Spring Boot的配置文件Application.properties或者Application.yml文件中添加下面一条属性。
spring.output.ansi.enabled: detect
spring.output.ansi.enabled
有三个候选项:
- NEVER:禁用ANSI-colored输出(默认项)
- DETECT:会检查终端是否支持ANSI,是的话就采用彩色输出(推荐项)
- ALWAYS:总是使用ANSI-colored格式输出,若终端不支持的时候,会有很多干扰信息,不推荐使用
下面是原文的出处
原文作者: Ahaochan
原文链接: Spring_Boot_color_log_configuration
希望感谢作写的也可以去给原作者打赏,就在原文的最下面。