我想知道是否有办法记录所有CLI调用。 Jenkins提供我们在WebInterface中声明自定义记录器,我想知道是否有选项可以注意任何命令行交互。
所以我试着看看代码,但没有发现任何有用的东西。
hudson.cli.CLICommand is logging nearly nothing and the SubClasses too
hudson.cli.CliManagerImpl is logging exactly nothing
所以我想知道是否有某种拦截器或通过groovy脚本执行此操作的方法?
亲切的问候 DAGPS: 我最初的目的是看看我们的scm备份脚本是否在晚上将jenkins置于关闭模式,但是hudson.model.Queue的维护记录被调用得太频繁而且我无法看到它是否被定期触发或是否通过安静下来和取消安静下来的命令。
答案 0 :(得分: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()
希望这有助于某人。
答案 1 :(得分:0)
我知道这个问题已有3年历史了,但是如果有人现在(或将来)找到它,那么从Jenkins 2.129开始,这个问题应该得到解决(尚未发布)。我们有类似的需求,因此我们分别制作了issue和PR。
因此,通过将记录器hudson.cli.CLICommand设置为FINE,将编写更多的诊断信息。 For more info on how to set logs have a look here。