2014-02-24 33 views
11

我已將我的Capistrano配置的日誌級別設置爲error以防止詳細輸出。在deploy.rb我已添加set :log_level, :error。這很好。但是,當我通過execute運行命令時,由於它在DEBUG的日誌級別下被寫入,因此它不會被打印。如何獲得要打印的execute命令的輸出?我可以使用captureputs的組合來輸出它,但是當我必須傳輸日誌時,這並沒有幫助。卡皮斯特拉諾日誌級別

回答

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 

然後簡單地這樣稱呼它:

with_verbosity(Logger::DEBUG) do 
    execute "./blah.sh" 
end