如何将 "println" 命令输出重定向到 Groovy 中的文件

How to redirect "println" commands output to a file in Groovy

我想将 println 命令重定向到另一个文件,该命令是作业的详细信息,如构建名称、状态、时间等。

下面是我的代码片段,我想将其输出重定向到一个文件。

def lastBuildEnvVars = lastbuild.getEnvVars()
println 'Product Name : ' + lastBuildEnvVars['PRODUCT_NAME'] + 'Version : ' + lastBuildEnvVars['PRODUCT_VERSION'] + 'Result: ' + lastbuild.result + 'Time: ' + lastbuild.timestampString2 + '\n'
println 'Result: ' + lastbuild.result + '\nTime: ' + lastbuild.timestampString2

println 的输出是

Current Product Name : OMA_KENAN_FX_READINESS
Product Version : 
Result: SUCCESS
Time: 2019-08-31T01:25:26Z
    def logFile = new File("output.log")
    logFile.append('Product Name : ' + lastBuildEnvVars['PRODUCT_NAME'] + 'Version : ' + lastBuildEnvVars['PRODUCT_VERSION'] + 'Result: ' + lastbuild.result + 'Time: ' + lastbuild.timestampString2 + '\n')
    logFile.append('Result: ' + lastbuild.result + '\nTime: ' + lastbuild.timestampString2)

您可以将一行分配给字符串变量,然后执行:

    def entry = 'Result: ' + lastbuild.result + '\nTime: ' + lastbuild.timestampString2
    println(entry)
    logFile.append(entry)

然后你可以编写一个名为 logIt(entry) 的方法来打印并写入文件:

    def logIt(entry) {
        //you have to let this method know about the file object somehow
        println(entry)
        logFile.append(entry)
    }

等等等等。