Уровень журнала Capistrano

Я установил уровень журнала конфигурации Capistrano на error, чтобы предотвратить подробный вывод. В deploy.rb я добавил set :log_level, :error. Это отлично работает. Однако, когда я запускаю команды через execute, он не печатается, поскольку он записывается под уровнем журнала DEBUG. Как я могу получить вывод команд execute для распечатки? Я могу использовать capture с комбинацией puts для вывода его, но это не помогает, когда я должен транслировать журналы.

Ответ 1

Это можно сделать, указав следующий способ в файле 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