Как перенаправить вывод команд "println" в файл в Groovy - PullRequest
0 голосов
/ 23 октября 2019

Я бы хотел перенаправить команду 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

OutPut of println равен

Current Product Name : OMA_KENAN_FX_READINESS
Product Version : 
Result: SUCCESS
Time: 2019-08-31T01:25:26Z

1 Ответ

0 голосов
/ 23 октября 2019
    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 (запись), который выполняет печать и запись в файл:

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

и так далее и тому подобное.

...