从Jenkinsfile写日志

时间:2017-02-09 20:45:08

标签: jenkins groovy jenkins-pipeline

在创建应该在管道中使用的Jenkins管道或库时,通常很难使用提供的日志记录选项来调试代码。目前我用这个记录:

node {
  ...
  sh "echo ${thingtoshow}"
}

缺点是它在Groovy / Java特定细节方面并不是非常强大 - 例如它不允许我立即转储对象的内容

它会在实际日志中造成混乱:

[Pipeline] sh
[workspace] Running shell script
+ echo 'things'
things

那么我怎样才能在Jenkins控制台中编写日志以获得一行日志输出?

编辑:即使代码示例没有显示,但在为Jenkins管道开发共享Groovy libraries时这尤其有用

2 个答案:

答案 0 :(得分:12)

您可以使用echo阶段:

node {
  echo "qwerty"
}

它产生两行:

[Pipeline] echo
qwerty

不幸的是它产生了两行,但据我所知,这是最短的形式。

答案 1 :(得分:2)

您也可以调用核心Java的Logger。

import java.util.logging.Logger

Logger logger = Logger.getLogger('org.example.jobdsl')
logger.info('Hello from a Job DSL script!')

以上内容会在http://yourjenkinsurl/log/all

为您提供这样的条目
Jan 22, 2018 3:27:58 PM INFO org.codehaus.groovy.reflection.CachedMethod invoke
Hello from a Job DSL script!