如何通过Jenkins API获取完整的阶段节点日志?
解决Jenkins Pipeline日志API分段返回的问题
获取剩余日志的正确方式
当调用该API返回hasMore: true时,说明日志并未完全返回,你可以通过添加分页参数来获取全部内容:
start参数:指定日志的起始行号。默认情况下API会返回末尾的一段日志,要获取前面的内容,你需要设置start为更早的行号(比如从0开始)。每次请求后,根据返回的日志行数,递增start的值继续请求,直到hasMore变为false。length参数:控制每次请求返回的日志行数,你可以根据需求调整这个值(比如设置为2000来减少请求次数)。
示例请求(替换占位符为你的实际信息):
GET /job/{job-name}/{run-id}/execution/node/{node-id}/wfapi/log?start=0&length=2000
把每次请求返回的日志片段按顺序拼接,就能得到完整日志。
关于consoleFull标志无效的说明
浏览器中使用的consoleFull是Jenkins原生控制台页面的参数,和你调用的pipeline-stage-view插件REST API不属于同一接口体系,所以直接在该API中添加consoleFull参数不会生效。如果想简化获取完整日志的流程,也可以使用Jenkins原生的日志接口:
GET /job/{job-name}/{run-id}/logText/progressiveText?start=0
这个接口通过响应头X-More-Data判断是否还有剩余日志,当该头值为true时,调整start值继续请求即可。
内容的提问来源于stack exchange,提问作者Nkashk
相关产品推荐
相关产品推荐

