1

我想知道是否有办法记录所有 CLI 调用。Jenkins 让我们在它的 WebInterface 中声明自定义记录器,我想知道是否有一个选项来注意任何命令行交互。

所以我试着看一下代码,但没有发现任何有用的东西。

hudson.cli.CLICommand is logging nearly nothing and the SubClasses too
hudson.cli.CliManagerImpl is logging exactly nothing

所以我想知道是否有某种拦截器或通过 groovy 脚本来做到这一点的方法?

亲切的问候 dag

PS:我最初的意图是查看我们的 scm 备份脚本是否在夜间将 jenkins 置于关闭模式,但是 hudson.model.Queue 的维护日志被调用太频繁,我无法查看它是否只是定期触发还是通过 quiet-down 和 cancel-quiet-down 命令。

4

2 回答 2

0

查看源代码后,无法通过构建 Loggers 来做到这一点。但是我至少可以通过使用 groovy 脚本界面留下一些日志。

这是 quietDown 模式的示例代码。

import java.util.logging.Logger
import jenkins.model.Jenkins

Jenkins jenkins = Jenkins.getInstance()
Logger logger = Logger.getLogger("jenkins.groovy.Maintenance")

logger.info ("User '" + jenkins.getAuthentication().getPrincipal() + "' requests doCancelQuietDown()")
jenkins.doCancelQuietDown()

希望这可以帮助某人。

于 2014-05-28T15:08:30.013 回答
0

我知道这个问题已经存在三年了,但如果有人现在(或将来)发现它,从 Jenkins 2.129 开始,这应该被修复(尚未发布)。我们有类似的需求,所以我们提出了一个问题PR来解决它。

因此,通过将记录器 hudson.cli.CLICommand 设置为 FINE,将编写更多诊断信息。有关如何设置日志的更多信息,请查看此处

于 2018-06-25T05:13:03.080 回答