3 votes

Comment ajouter l'horodatage au fichier journal de construction actuel dans le dossier "jobs" du répertoire personnel de Jenkins ?

J'utilise Jenkins pour automatiser notre processus de construction et de publication.

Lors de l'exécution d'un travail sous Jenkins, l'horodatage n'apparaît pas dans le journal de construction de la console.

Pour ajouter l'horodatage au journal de construction de la console, j'ai téléchargé le plugin "Timestamper" et activé l'option "Add timestamps to the Console Output" dans chacune des configurations de mes jobs sous Jenkins. Maintenant, l'horodatage est ajouté au journal de construction de la console dans Jenkins.

Mais lorsque je vérifie le même fichier journal de construction dans le dossier "jobs" du répertoire personnel de Jenkins, l'horodatage n'est pas ajouté dans le fichier journal.

Comme ce fichier journal est joint aux détails de construction du travail lors de l'envoi du courrier aux parties prenantes, il est inévitable d'ajouter l'horodatage dans le fichier journal.

Veuillez vérifier le contenu ci-dessous.

Dans le journal de construction de la console

15:40:04 Started by user TEST
15:40:04 [EnvInject] - Loading node environment variables.
15:40:04 Building in workspace C:\jenkins\workspace
15:40:04 No emails were triggered.

Dans le fichier journal actuel

Started by user TEST
[EnvInject] - Loading node environment variables.
Building in workspace C:\jenkins\workspace
No emails were triggered.

J'ai donc deux questions

  1. Comment activer l'option "Ajouter les horodatages à la sortie de la console" en tant que processus unique pour tous les travaux si j'ai plusieurs travaux dans Jenkins ?
  2. Comment ajouter un horodatage au fichier journal de construction actuel dans le dossier "jobs" du répertoire personnel de Jenkins ?

Merci d'avance.

3voto

RaamEE Points 397

Timestamper fournit une API pour obtenir le journal avec les horodatages.

Vous pouvez utiliser mon Réponse à "Comment lire le contenu du fichier /timestamps dans jenkins manuellement " sur la façon d'obtenir le journal avec les timestamps pour tirer une copie du journal et l'enregistrer dans un fichier texte.

En bref :

Utilisez cette URL

http://${JENKINS_IP_PORT}/job/${JOB_NAME}/${JOB_NUMBER}/timestamps/?time=yyyy-MM-dd%20HH:mm:ss&appendLog

pour obtenir une réponse en texte clair

2020-03-19 13:16:47  Jenkins did something here
2020-03-19 13:16:47  and this is something else that happend
2020-03-19 13:16:47  This line shows some output
2020-03-19 13:16:47  etc.
2020-03-19 13:16:47  etc.
2020-03-19 13:16:47  ...
2020-03-19 13:16:47  ...
2020-03-19 13:16:47
2020-03-19 13:16:47

et l'enregistrer dans un fichier dans le dossier de la tâche.

0voto

ping mai Points 1

J'ai eu la même question n°2.

si votre serveur jenkins nécessite une authentification, vous aurez besoin de ~/.wgetrc :

http-user=<user>
http-password=<your password>

wget -O - --auth-no-challenge "http://<Jenkins server URL>/job/<Job name>/<job#>/consoleFull" | sed -e 's@<span class="timestamp"><b>\(.*\)</b> </span>@\1 @' > logfile.with.timestamp

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X