BUILD_LOG电子邮件输出不包括控制台日志中的错误文本

时间:2019-05-15 17:25:20

标签: email logging jenkins-plugins

我正在使用Jenkins emailext插件并尝试接收控制台输出,但仅收到不带实际错误的截断日志。

我强迫一个断言故意失败,以测试我是否在电子邮件中收到了失败日志($ BUILD_LOG)。我确实获得了日志的大部分,但没有得到实际的最终错误或最后几个步骤。有没有办法捕获错误?它正在发送日志的截短版本,其中不包含最后几个步骤,因为我怀疑在发送邮件时,它会发送到目前为止已收集的内容(直到mailext步骤),而最后的步骤未写入其中日志,因为我们处于emailext步骤。但是,不幸的是,实际错误写在日志的末尾,所以我从没在电子邮件中看到它。我不太在乎是否丢失了最后的步骤,我不在乎最终不会看到错误消息,这是发送日志的全部要点。当我不使用VPN并能够访问Jenkins时,我希望能够看到电子邮件中的错误。 是否有包含ERROR的环境变量或在到达文件末尾之前清除错误的方法?

post { failure { emailext (to: xyz@acmeinc.com", subject: "Failed Pipeline: ${currentBuild.fullDisplayName}", body: """Something went wrong with ${env.BUILD_URL}\n\n\${BUILD_LOG, maxLines=500, escapeHtml=false}""") } }

  

由userxxx开始
  ...
  [管道]
  emailext
  发送电子邮件至:abc@acmeinc.com
  [管道]}
  [管道] //舞台
  [管道]}
  [管道] //节点
  [管道]管道末端
  groovy.lang.MissingPropertyException:无此类属性:类别groovy.lang.Binding ...的IE_BUILDx ...

我关心的是在管道步骤结束时显示的错误(例如,无此类属性错误)-有没有办法在我发送邮件之前强制刷新到日志以其他方式捕获它?

由于这是一个声明性管道,因此我无法在整个代码块中进行try / catch。我可以在管道中的每个脚本部分周围放置try / catch来捕获错误,将错误消息保存在我的电子邮件的变量中,然后重新抛出该错误,但这非常繁琐并且使代码混乱

0 个答案:

没有答案