Groovy reports that a file doesn't exists when it really is present in the system

Within a Jenkins pipeline, File log = new File("${WORKSPACE}/${LOG}"); doesn't work.
You can use readFile instead, e.g.:

def log = readFile "${WORKSPACE}/${LOG}"

java.io.File methods will refer to files on the master where Jenkins is running, so not in the current workspace on the slave machine.

To refer to files on the slave machine, you should use the readFile method

def log = readFile("${WORKSPACE}/${LOG}");