问题 Capistrano日志级别


我已将Capistrano配置的日志级别设置为 error 防止详细输出。在 deploy.rb 我已经添加 set :log_level, :error。这很好用。但是,当我通过命令运行时 execute,它不会被打印,因为它是在日志级别下写的 DEBUG。我怎样才能获得输出 execute 命令要打印出来?我能够使用 capture 与...的组合 puts 输出它,但是当我必须流式传输日志时这没有用。


3677
2018-02-24 01:21


起源



答案:


您可以通过在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

11
2018-03-03 15:00