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

如何配置Gradle实现quiet日志输出控制台、info及以上级别写入文件

版本限制说明

你查到的旧社区讨论对应的是Gradle 5.x及更早版本的限制,该限制在Gradle 6.0及以上版本已经解除,目前可以通过原生API实现不同级别日志拆分到不同输出目标的需求。
你之前配置log4j.properties不生效是因为Gradle使用自研的日志体系,默认不加载外部log4j配置。

实现方案

方案1:构建脚本内置配置(推荐,稳定性高)

直接在项目根目录的build.gradle中添加以下配置即可生效:

// 配置控制台仅输出QUIET级别日志
logging.captureStandardOutput LogLevel.QUIET
console.level = LogLevel.QUIET

// 配置INFO及以上级别日志输出到本地文件
def infoLogFile = file("${buildDir}/logs/gradle-info.log")
infoLogFile.parentFile.mkdirs()

logging.addStandardOutputListener { line ->
    if (gradle.startParameter.logLevel <= LogLevel.INFO) {
        infoLogFile.append(line + System.lineSeparator())
    }
}

logging.addStandardErrorListener { line ->
    if (gradle.startParameter.logLevel <= LogLevel.INFO) {
        infoLogFile.append("[ERROR] " + line + System.lineSeparator())
    }
}

// 执行任务时带上--info参数即可触发全量日志写入文件

如果需要全局适配所有项目,可以将上述配置放到Gradle的全局初始化脚本init.gradle中,无需修改单个项目的构建文件。

方案2:无侵入命令行实现(无需修改构建脚本)

直接在Jenkins执行Gradle任务的命令行中做日志拆分:

# 控制台仅输出QUIET级日志,INFO及以上日志写入指定文件
gradle yourTaskName --info | grep -E '^(QUIET|ERROR|> Task)' | tee /var/log/gradle/info.log > /dev/null

该方案依赖shell命令的日志过滤能力,不需要修改任何项目代码,适合临时适配的场景。

Jenkins侧适配

任务配置中添加「归档构件」后置步骤,填写对应日志文件的路径(比如build/logs/gradle-info.log),任务执行完成后日志会自动归档到对应任务的构建记录空间中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:18:00