我正在使用 Jenkins 来自动化我们的构建和发布过程。
在 Jenkins 下执行作业时,时间戳不会显示在控制台构建日志中。
为了将时间戳添加到控制台构建日志,我下载了“Timestamper”插件,并在 Jenkins 下的每个作业配置中启用了“将时间戳添加到控制台输出”选项。现在时间戳已附加到 Jenkins 中的控制台构建日志中。
但是,当我在 Jenkins 主目录下的“jobs”文件夹中检查相同的构建日志文件时,时间戳未附加在日志文件中。
由于在向利益相关者发送邮件时此日志文件附加了作业构建详细信息,因此不可避免地在日志文件中添加时间戳。
请检查以下内容。
在控制台构建日志中
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.
Run Code Online (Sandbox Code Playgroud)
在实际日志文件中
Started by user TEST
[EnvInject] - Loading node environment variables.
Building in workspace C:\jenkins\workspace
No emails were triggered.
Run Code Online (Sandbox Code Playgroud)
所以,我有两个问题
- 当我在 Jenkins 中有更多作业时,如何启用“将时间戳添加到控制台输出”选项作为所有作业的一次性处理?
- 如何将时间戳添加到 Jenkins 主目录下“jobs”文件夹下的实际构建日志文件中?
提前致谢。
Timestamper 提供了一个 API 来获取带有时间戳的日志。
您可以使用我对“如何手动读取 jenkins 中 /timestamps 文件的内容”的答案,了解如何获取带有时间戳的日志来提取日志副本并将其保存为文本文件。
使用此网址
http://${JENKINS_IP_PORT}/job/${JOB_NAME}/${JOB_NUMBER}/timestamps/?time=yyyy-MM-dd%20HH:mm:ss&appendLog
Run Code Online (Sandbox Code Playgroud)
获得纯文本响应
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
Run Code Online (Sandbox Code Playgroud)
并将其保存到作业文件夹中的文件中。