Jenkinsfile build log Jenkinsfile build log jenkins jenkins

Jenkinsfile build log


Actually it is possible using currentBuild.rawBuild.log or better (not deprecated) currentBuild.rawBuild.getLog(100) (for the last 100 lines), reference: http://javadoc.jenkins-ci.org/hudson/model/Run.html#getLog-int-


I searched a lot for a solution to analyze the log.

  • use rawBuild was not OK, because I want to execute my scripts in a sandbox without additional approvals
  • use tee in the steps, that I want to analyse was not OK, because I don't want to modify previous steps, nor I don't want to have my whole log in RAM (and unfortunately I needed that on a Windows machine)

I found a solution inspired by Jesse Glicks answer:

  • Under my.jenkins.url/pipeline-syntax/globals you can see, that the manager-variable allows you to analyse the log by using manager.logContains(regexp) or manager.getLogMatcher(regexp)
  • So if you just want to check, that your log contains string myTestString you can just call manager.logContains('.*myTestString.*')
  • If you want to get some information from the first matching line you can use manager.getLogMatcher(regexp)

Unfortunately I found no way to analyze the whole log (getLogMatcher returns only the first matching line Matcher). So I see currently no way to e.g. count how often a log file contains a special string.


Not currently. (Properties of currentBuild are documented under Snippet Generator ยป Global Variables by the way.)

It could be implemented, fairly easily, though it would not scale well with huge builds. JENKINS-28119 would provide a more scalable solution to what I am guessing your underlying request is.