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 包含您可能会觉得有用的信息。
我需要用日志功能扩展我的 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.
另一件要改变的事情是你会想要
I'm also unsure if I have to use this @NonCPS here?
What is @NonCPS annotation in Jenkins pipeline script 包含您可能会觉得有用的信息。