【问题标题】:How to display certain logs from 3rd parties during Gradle build如何在 Gradle 构建期间显示来自 3rd 方的某些日志
【发布时间】:2017-08-17 22:26:12
【问题描述】:

我的应用程序使用 Gradle 3.5。在构建开始时,我执行了自己的 library,它使用 log4j 来记录消息。

我需要在gradle build 期间显示我的library 产生的INFO 消息。

例如得到这样的输出:

[INFO ] [com.mylibrary] A message 1
[ERROR] [com.mylibrary] A message 1
[INFO ] [com.mylibrary] A message 2
:compileJava
:compileGroovy
... etc.

我不想运行gradle --info,因为控制台被太多垃圾淹没了,我不想打扰用户。

有没有办法做到这一点? Gradle Logging doc 只讨论标准输出重定向到不同的错误级别。

另外,有没有办法通过在log4j 中指定ConversionPattern 来更改我通常会执行的输出模式?

【问题讨论】:

  • build.gradle 中如何调用您的库?
  • 名字重要吗? :) 它使用的是com.company.product:company-upgrade-code:1.0.0-SNAPSHOT 模式。我确实将它指定为依赖项,并在 Gradle 任务中运行库的 new Upgrade().execute() 方法,该方法在内部使用 log4j 进行日志记录。

标签: logging gradle build.gradle


【解决方案1】:

Gradle 使用自己的 slf4jlog4j 实现。除了使用--info--debug 命令行参数外,无法覆盖任何设置。

为了能够打印出我的库生成的日志,我定义了一个 JavaExec 类型的新 Gradle 任务,这样可以避免 Gradle 自己的日志实现,并且我的库使用在其依赖项中定义的正确记录器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-05
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多