springboot使用logback配置彩色日志

本文介绍了如何在SpringBoot应用中使用Logback配置彩色日志,通过对比nocolor.log.pattern和log.pattern属性,以及如何在控制台输出中使用颜色代码来增强日志的可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springboot使用logback配置彩色日志


前言

应该有很多同学发现,使用了logback以后,我们的控制台日志都变成灰色了,网络上搜到的logback配置大多数没有进行配色,所以会把springboot的默认配色方案给覆盖掉

在这里插入图片描述


一、logback文件

重点对比<property name="nocolor.log.pattern"><property name="log.pattern>"这两行,我们用类似%blue()这种颜色把日志内容包裹起来,就可以了

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds">
	 <!-- 无配色 -->
	<property name="nocolor.log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{36} - [%M:%L] - %msg%n" />
    <!-- 有配色 -->
    <property name="log.pattern" value="%blue(%d{yyyy-MM-dd HH:mm:ss.SSS}) %highlight(%-5level) %magenta([%thread]) %cyan(%logger{36} - [%M:%L]) - %msg%n"/>

    <!-- 控制台输出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="console"/>
    </root>
</configuration>

二、效果

在这里插入图片描述

### 如何配置 `logback.xml` 实现彩色日志输出 为了使日志能够在控制台中以不同颜色显示,可以利用特定的日志模式以及一些用于设置颜色的转义序列。下面是一个具体的例子来展示如何通过修改 `logback.xml` 文件达到这一目的。 #### 使用 `%highlight{...}` 或者 `%clr{...}` 来创建带有颜色日志条目 在 `logback.xml` 中可以通过定义 `<pattern>` 元素内的特殊转换器如 `%highlight{level} %clr(%d{yyyy-MM-dd HH:mm:ss})` 等方式为不同的部分应用色彩效果[^1]: ```xml <configuration> <!-- 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%date %highlight(%-5level) [%thread] %logger{0}: %msg%n</pattern> </encoder> </appender> <!-- 日志根级别 --> <root level="info"> <appender-ref ref="STDOUT"/> </root> </configuration> ``` 上述配置中的 `%highlight()` 函数会依据传入参数自动选择合适的前景色;对于更细粒度的颜色定制,则可采用 `%clr{}%style{}` 组合形式来自定义样式[^2]。 例如,如果希望日期时间总是蓝色而线程名始终绿色的话,那么就可以这样写: ```xml <pattern>%blue(%d{HH:mm:ss.SSS}) %-5p %green([%-20.20t]) %yellow(%-40.40logger{39}) - %m%n</pattern> ``` 这里使用的函数包括但不限于: - `%red()`, `%green()`, `%yellow()`, `%blue()`: 设置固定颜色; - `%highlight()`: 根据日志等级动态调整颜色; - `%cyan()`, `%magenta()`, `%white()`, `%gray()`. 需要注意的是,在某些终端环境中可能无法正常渲染这些 ANSI 转义码所代表的颜色变化,因此建议先测试确认环境兼容性后再做进一步部署。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

繁华尽头满是殇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值