groovy jenkins 脚本中未显示日志消息

Log messages are not showing up in groovy jenkins script

我需要用日志功能扩展我的 jenkins 脚本,并尝试使用 java.util.logging 来达到这个目的。以下片段显示了我已经做过的事情。

import java.util.logging.*

@NonCPS
def tryLogging() {
        println("Start")
        Logger logger = Logger.getLogger("Test")
        logger.setLevel(Level.INFO);
        logger.setUseParentHandlers(false);
        ConsoleHandler handler = new java.util.logging.ConsoleHandler()
        handler.setFormatter(new SimpleFormatter())
        logger.addHandler(handler)      
        logger.info("Hello")
        logger.severe("Severe")
        println("End")
}

tryLogging()

我的控制台日志现在显示如下:

[Pipeline] Start of Pipeline
[Pipeline] echo
Start
[Pipeline] echo
End

确实没有可见的日志消息,我不知道我做错了什么。这里的任何人都可以向我解释如何使控制台日志可见吗?我也不确定我是否必须在这里使用这个 @NonCPS

[管道]管道结束 已完成:成功

ConsoleHandler 打印到 System.err。修改您的脚本以使用

System.err.println("Start") 并查看 'Start' 是否仍显示在控制台中。如果不是,那么问题是 ConsoleHandler is writing to a stream you can't see.

另一件要改变的事情是你会想要。根据您使用的 Java 版本,记录器可能会被垃圾收集,并且您可能会丢失附加的处理程序。

I'm also unsure if I have to use this @NonCPS here?

What is @NonCPS annotation in Jenkins pipeline script 包含您可能会觉得有用的信息。