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

如何在Linux终端通过gradle run输出带颜色的Java Logback日志?

无需修改代码实现SLF4J日志终端着色的最优方法

SLF4J是日志门面,实际生效的是底层日志实现(主流为Logback、Log4j2),只需修改对应实现的配置文件,即可在xfce4-terminal中给不同级别日志自动着色,无需改动业务代码里的日志语句。以下分两种主流实现给出配置方案:

一、Logback实现方案

  1. 确认依赖:确保项目已引入Logback的SLF4J绑定依赖,Gradle中添加:
implementation 'ch.qos.logback:logback-classic:1.4.8'
  1. 添加Logback配置文件:在src/main/resources下创建logback.xml,配置带颜色的控制台输出:
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!-- 自定义级别对应颜色:ERROR红、WARN黄、INFO绿、DEBUG蓝 -->
            <pattern>%highlight(%-5level){ERROR=red, WARN=yellow, INFO=green, DEBUG=blue} %logger{36} - %msg%n</pattern>
            <!-- 开启Jansi支持ANSI颜色码 -->
            <withJansi>true</withJansi>
        </encoder>
    </appender>

    <!-- 全局日志级别设为DEBUG,确保所有级别日志输出 -->
    <root level="DEBUG">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

二、Log4j2实现方案

  1. 确认依赖:确保项目已引入Log4j2的SLF4J绑定依赖,Gradle中添加:
implementation 'org.apache.logging.log4j:log4j-slf4j-impl:2.20.0'
  1. 添加Log4j2配置文件:在src/main/resources下创建log4j2.xml,配置带颜色的控制台输出:
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <!-- 自定义级别对应颜色,直接通过%highlight转换器实现 -->
            <PatternLayout pattern="%highlight{%-5level}{ERROR=red, WARN=yellow, INFO=green, DEBUG=blue} %logger{36} - %msg%n" />
        </Console>
    </Appenders>
    <Loggers>
        <Root level="DEBUG">
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
</Configuration>

注意事项

  • xfce4-terminal默认支持ANSI颜色渲染,若未生效可检查终端设置,确保开启「允许使用颜色」选项;
  • Gradle运行应用时(gradle run)会直接转发Java进程的输出,只要日志框架输出带ANSI颜色码,终端就会自动渲染对应颜色;
  • 两种方案均无需修改任何业务代码中的日志打印语句,仅通过配置文件即可实现着色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 10:30:13