使用 gradle 4 登录到文件

els*_*uko 5 logging file gradle output

直到 gradle 3,我用它来将 gradle 的输出写入日志文件:

def fileLogger = [
    onOutput : {
        File logfile = new File( 'gradle.log' )
        logfile << it
    }
] as org.gradle.api.logging.StandardOutputListener

gradle.useLogger( fileLogger )
Run Code Online (Sandbox Code Playgroud)

这不适用于 gradle 4。

els*_*uko 7

Gradle 5 更新:当使用logging.addStandardOutputListener替代gradle.useLogger并将其添加到所有任务时它可以工作:

// logger
def fileLogger = [
        onOutput: {
            File logfile = new File('gradle.log')
            logfile << it
        }
] as org.gradle.api.logging.StandardOutputListener

// for configuration phase
logging.addStandardOutputListener(fileLogger)

// for execution phase
gradle.taskGraph.whenReady { taskGraph ->
    taskGraph.allTasks.each { Task t ->
        t.doFirst {
            logging.addStandardOutputListener(fileLogger)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)