web-dev-qa-db-fra.com

Écrire le journal de Jenkinsfile

Lors de la création de pipelines ou de bibliothèques Jenkins qui doivent être utilisés dans un pipeline, il est souvent difficile de déboguer du code avec les options de journalisation fournies. En ce moment, je me connecte avec ceci:

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

L'inconvénient est que ce n'est pas très puissant en ce qui concerne les détails spécifiques à Groovy/Java - par exemple cela ne me permettrait pas de vider le contenu des objets tout de suite

Cela crée un gâchis dans les journaux réels:

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

Alors, comment pourrais-je écrire des journaux pour obtenir une seule ligne de sortie de journal dans la console Jenkins?


Edit: Même si l'exemple de code ne le montre pas, mais cela est particulièrement utile lors du développement partagé bibliothèques Groovy pour les pipelines Jenkins

10
pagid

Vous pouvez utiliser l'étape echo:

node {
  echo "qwerty"
}

Il en résulte deux lignes:

[Pipeline] echo
qwerty

Malheureusement, il génère deux lignes, mais pour autant que je sache, c'est la forme la plus courte.

18
Jon S

Vous pouvez également appeler l'enregistreur Java de base.

import Java.util.logging.Logger

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

Ce qui précède vous donnera une entrée comme celle-ci à http://yourjenkinsurl/log/all:

Jan 22, 2018 3:27:58 PM INFO org.codehaus.groovy.reflection.CachedMethod invoke
Hello from a Job DSL script!
3
modle13