我已经为我的日志记录目的定义了一个帮助文件,如下所示:
记录器.groovy
import groovy.transform.Field @Field color = [ reset : "\033[0m", red : "\033[31m", green : "\033[32m", yellow : "\033[33m", blue : "\033[34m", magenta : "\033[35m", cyan : "\033[36m" ] def info(String str) { ansiColor() { println("${color.green}${str}") } }
然后我在我的主构建文件中使用它:
logger.info("Logging at info level")
logger.info("another log message")
正确执行此操作会将我的文本显示为绿色(此处无法模仿),但它也会打印很多垃圾:
输出:
[Pipeline] ansiColor [Pipeline] { [Pipeline] echo Logging at info level [Pipeline] } [Pipeline] // ansiColor [Pipeline] ansiColor [Pipeline] { [Pipeline] echo another log message [Pipeline] } [Pipeline] // ansiColor
我怎样才能让它禁用所有无关的源代码行?我想在我的主脚本中启用该功能,我真的不需要每次我想记录一些东西时都需要它。
我曾尝试将 shebangs 放在 logger.groovy 文件的顶部,但无济于事。我的 jenkins 实例也在 Windows 上运行,这可能有助于解释原因。我也尝试过放入set +x
info() 方法,但这只会导致以下异常,这可能是由于沙箱环境
groovy.lang.MissingPropertyException: No such property: set for class: logger
我不知道为什么我会遇到这样的困难。其他人只是处理它还是我在做一些不寻常的事情?