2014-02-24 4 views
11

자세한 출력을 방지하기 위해 Capistrano 구성의 로그 수준을 error으로 설정했습니다. deploy.rbset :log_level, :error을 추가했습니다. 이것은 잘 작동합니다. 그러나 execute을 통해 명령을 실행하면 DEBUG의 로그 수준에서 작성되므로 인쇄되지 않습니다. execute 명령의 출력을 어떻게 인쇄 할 수 있습니까? 나는 puts의 조합으로 capture을 사용하여 출력 할 수 있지만 로그를 스트리밍해야 할 때는 도움이되지 않습니다.카피스트라 로그 수준

답변

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