12

我已将 Capistrano 配置的日志级别设置error为防止出现详细输出。在deploy.rb我添加了set :log_level, :error. 这很好用。但是,当我通过 运行命令时execute,它不会打印,因为它是在DEBUG. 如何获得execute要打印的命令输出?我可以使用capture组合puts来输出它,但是当我必须流式传输日志时这无济于事。

4

1 回答 1

12

您可以通过在 deploy.rb 文件中定义以下方法来做到这一点:

def with_verbosity(verbosity_level)
  old_verbosity = SSHKit.config.output_verbosity
  begin
    SSHKit.config.output_verbosity = verbosity_level
    yield
  ensure
    SSHKit.config.output_verbosity = old_verbosity
  end
end

然后像这样简单地调用它:

with_verbosity(Logger::DEBUG) do
  execute "./blah.sh"
end
于 2014-03-03T15:00:17.480 回答