我正在使用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.
所以,我有两个问题
- 当我在詹金斯(Jenkins)有更多工作时,如何启用“向控制台输出添加时间戳”选项作为对所有工作的一次处理?
- 如何在Jenkins主目录下“ jobs”文件夹下的实际构建日志文件中添加时间戳?
谢谢。
答案 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