如果我在管道脚本 ( Jenkinsfile)、我的全局管道库vars/或类中具有管道脚本方法src/,如何获取OutputStream控制台日志?我想直接写入控制台日志。
我知道我可以echo或println,但为此目的,我需要在不产生额外输出的情况下进行编写。我还需要能够将其传递OutputStream给其他东西。
TaskListener.getLogger()我知道如果我可以获得 TaskListener(真正的)实例,我可以调用hudson.util.StreamTaskListener,但是如何调用呢?
我试过:
我已经研究过manager.listener.logger(从 groovy postbuild 插件),并且在早期构建上下文中,我从中调用它不会产生写入作业的控制台日志的 OutputStream。
echo "listener is a ${manager.listener} - ${manager.listener.getClass().getName()} from ${manager} and has a ${manager.listener.logger} of class ${manager.listener.logger.getClass().getName()}"
Run Code Online (Sandbox Code Playgroud)
印刷
listener is a hudson.util.LogTaskListener@420c55c4 - hudson.util.LogTaskListener from org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder$BadgeManager@58ac0c55 and has a java.io.PrintStream@715b9f99 of class java.io.PrintStream
Run Code Online (Sandbox Code Playgroud)StepContext我知道你可以从via获取它,context.get(TaskListener.class)但我不在a中Step,我在 a CpsScript(即WorkflowScriptie Jenkinsfile)中。
CpsFlowExecution …