You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Logback中为不同日志级别配置自定义颜色?

问题解决:Logback自定义日志颜色不生效&文件日志颜色异常

一、自定义控制台日志颜色不生效的修复

你当前的配置问题在于**<highlight>标签的位置和配置方式错误**,Logback的默认%highlight转换器不会读取你放在encoder内的<highlight>配置,所以一直沿用默认配色。正确配置步骤如下:

  1. 注册自定义高亮转换器
    在配置文件开头添加<conversionRule>,把自定义高亮规则绑定到一个新的转换词(比如highlightCustom):
<configuration>
  <!-- 注册自定义高亮转换器 -->
  <conversionRule conversionWord="highlightCustom"
                  converterClass="ch.qos.logback.classic.pattern.color.HighlightingCompositeConverter" />
  1. 配置控制台Appender的自定义颜色
    将<highlightCustom>标签放在ConsoleAppender下、与encoder同级的位置,同时修改pattern里的高亮转换词为你注册的highlightCustom:
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>
        %d{yyyy-MM-dd HH:mm:ss} %highlightCustom(%-5level) %cyan(%logger{15}) - %msg %n
      </pattern>
    </encoder>
    <!-- 自定义颜色映射,与注册的转换词同名 -->
    <highlightCustom>
      <color>TRACE=WHITE</color>
      <color>DEBUG=GREEN</color>
      <color>INFO=GREEN</color>
      <color>WARN=YELLOW</color>
      <color>ERROR=RED</color>
    </highlightCustom>
  </appender>
  1. 保留原有logger和root配置
    你的logger和root配置无需修改,直接保留即可:
<logger name="at.qe.backend.api.services.AuthService" additivity="false" level="info">
    <appender-ref ref="FILE1" />
  </logger>

  <root level="DEBUG">
    <appender-ref ref="CONSOLE" />
  </root>
</configuration>

配置完成后,控制台日志就会按照你定义的颜色显示。


二、文件日志使用颜色插件异常的原因

你提到的第三方项目仅支持控制台日志,文件日志绝对不能使用任何颜色相关的转换器(包括%highlight、%cyan这类)。因为日志颜色是通过ANSI转义字符实现的,这类字符写入文件后,普通文本编辑器会直接显示转义代码(比如[32m),就会出现你看到的异常乱码。

解决办法:
文件Appender的pattern里要移除所有颜色相关语法,只保留纯文本格式,示例:

<appender name="FILE1" class="ch.qos.logback.core.FileAppender">
  <file>logs/app.log</file>
  <encoder>
    <!-- 纯文本格式,无任何颜色转换 -->
    <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{15} - %msg%n</pattern>
  </encoder>
</appender>

内容的提问来源于stack exchange,提问作者dubble_g

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:53:08