logback 默认控制台日志为黑白,启用 %highlight{...} 转换器可实现按级别自动着色(error红、warn黄、info白/绿、debug蓝、trace暗灰),需确保终端支持 ansi;配置示例:%d{hh:mm:ss.sss} [%thread] %-5level %logger{36} - %highlight{%msg%n}。

Logback 默认控制台输出是黑白的,要实现彩色日志,核心是使用 %highlight{...} 转换器配合 ANSI 颜色代码,并确保终端支持 ANSI(现代终端基本都支持,Windows Terminal、iTerm2、Linux 终端、IDE 内置终端如 IntelliJ 默认 OK)。
启用 %highlight 转换器
Logback 自带 %highlight,无需额外依赖(Logback 1.2+ 均支持)。它会根据日志级别自动着色:
ERROR → 红色加粗,WARN → 黄色,INFO → 白色/绿色,DEBUG → 蓝色,TRACE → 暗灰色。
在 logback-spring.xml 或 logback.xml 的 <pattern></pattern> 中直接使用:
自定义颜色(可选)
如果想微调颜色或统一风格,可用 %coloredLevel + 手动 ANSI 序列,或用 %color{...}{FATAL} 等。更推荐用 %highlight 的扩展写法:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
%highlight{%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n}{INFO=green, WARN=yellow, ERROR=red, DEBUG=blue}- 注意:括号内是 key=value 对,不支持空格;未指定的级别仍按默认色
确保终端识别 ANSI
多数情况无需配置,但以下情况需检查:
- Windows CMD:旧版不支持,建议改用 Windows Terminal 或启用虚拟终端(Java 启动时加
-Djansi.passthrough=true) - 某些 CI 环境(如 Jenkins 控制台)可能过滤 ANSI,此时彩色会失效,属环境限制,不影响本地开发
- IDE 中若无颜色,确认设置里开启了 ANSI 支持(IntelliJ:Settings → Editor → Color Scheme → Console Colors → Enable ANSI colors)
验证是否生效
写一行测试日志,比如:
logger.info("这是一条 info 日志");logger.warn("这是一条 warn 日志");
logger.error("这是一条 error 日志");
运行后观察控制台输出文字颜色是否随级别变化。没有颜色?优先检查 XML 是否被正确加载(可在启动日志中搜 logback 看是否打印了配置路径),再排查终端兼容性。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










