【问题标题】:How to use log4j in gradle task如何在 gradle 任务中使用 log4j
【发布时间】:2013-01-10 12:26:55
【问题描述】:

我是 gradle 新手。我尝试使用 log4j 注释。日志语句在 simpe Groovy 文件中运行良好。但是当我尝试将它们与 gradle 任务一起使用时。它没有被打印出来。

Groovy 文件:

  @Log4j
class HelloWorldLog {
   static void main(args) {
       log.info "Hello world"
    }
 }

Gradle 任务:

   @Log4j
    class DeployTask extends DefaultTask {
       @TaskAction
       def deployTaskAction(){
            log.info "DeployTask!!!"
       }
   }

我对两者都使用相同的 log4j.properties 文件。
日志在控制台中打印,而不是在日志文件中。如何将日志重定向到日志文件?

谢谢

【问题讨论】:

  • Gradle 的 own logger 能满足您的需求吗?
  • No.. 它正在将日志打印到控制台。但我希望它被重定向到日志文件。有什么办法吗?
  • 也许您需要将log4j.properties 添加为类路径配置?对于部署,我都是通过 Jenkins(ldap、审计跟踪等)来完成的。该作业使用 Gradle 构建并使用 Fabric 进行部署。这需要更多的设置工作,但效果非常好。

标签: logging groovy log4j gradle


【解决方案1】:

将您的 log4j.properties 文件保存在 src/main/resources 并构建您的项目。

添加这一行:

war.from('src/main/resources'){ include('log4j.properties')}

到你的主要 gradle.build。然后重新构建并运行。

【讨论】:

    【解决方案2】:

    log4j.properties与以下内容放在类路径中(可能是src/main/resources):

    log4j.rootLogger=INFO, file
    
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.File=C:\\myLog.log
    log4j.appender.file.MaxFileSize=1MB
    log4j.appender.file.MaxBackupIndex=1
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      相关资源
      最近更新 更多