如何在Jenkins主目录下的“ jobs”文件夹下的实际构建日志文件中添加时间戳?

时间:2018-09-25 10:21:56

标签: jenkins

我正在使用Jenkins自动化我们的构建和发布过程。

在Jenkins下执行作业时,控制台构建日志中未显示时间戳。

要将时间戳添加至控制台构建日志,我对“ Timestamper”插件进行了下标签,并启用了“向Jenkins下我每个作业的配置中的“控制台输出”选项。现在,时间戳已添加到Jenkins中的控制台构建日志中。

但是,当我在Jenkins主目录下的“ jobs”文件夹中检查了相同的构建日志文件时,该日志文件中没有显示时间戳。

由于此日志文件与job build一起附加向利益相关者发送邮件的详细信息,在日志文件中不可避免地要添加时间戳。

请检查以下内容。

在控制台构建日志中

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.

在实际日志文件中

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

所以,我有两个问题

     
      
  1. 当我在詹金斯(Jenkins)有更多工作时,如何启用“向控制台输出添加时间戳”选项作为对所有工作的一次处理?
  2.   
  3. 如何在Jenkins主目录下“ jobs”文件夹下的实际构建日志文件中添加时间戳?
  4.   

谢谢。

2 个答案:

答案 0 :(得分:2)

时间戳记提供了一个API,用于获取带有时间戳记的日志。

您可以使用我的answer to "How to read the contents of /timestamps file in jenkins manually "来获取带有时间戳的日志,以提取日志的副本并将其另存为文本文件。

简而言之:

使用此URL

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

获得纯文本回复

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

并将其保存到作业文件夹中的文件中。

答案 1 :(得分:0)

我有第二个问题。

如果您的jenkins服务器需要身份验证,则需要〜/ .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