Capistrano日志级别

Jey*_*ran 11 logging capistrano capistrano3 sshkit

我已将Capistrano配置的日志级别设置error为阻止详细输出.在deploy.rb我补充说set :log_level, :error.这非常有效.但是,当我运行命令时execute,它不会被打印,因为它是在日志级别下写的DEBUG.如何获得execute要打印的命令输出?我可以使用capture它的组合puts来输出它,但是当我必须流式传输日志时这没有用.

Ser*_*eev 11

您可以通过在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
Run Code Online (Sandbox Code Playgroud)

然后简单地称它为:

with_verbosity(Logger::DEBUG) do
  execute "./blah.sh"
end
Run Code Online (Sandbox Code Playgroud)