2012-03-10 4 views
1

나는 루비에서 스크립트를 작성하고 싶다. 스크립트 의 목표는 cmake 프로젝트의 빌드 프로세스를 자동화하는 것입니다. 많은 디버그를 추가하고 싶지만 puts 또는 출력을 사용하면 출력이 항상 표시되고 싶지 않습니다.루비에서 특정 디버그 출력을 활성화하려면 어떻게해야합니까?

나는 my_script를 --debug의 $ foo는

같은 뭔가를하고 스크립트의 개발과 관련된 출력을 갖고 싶어. 사전

답변

1

에서

덕분에 당신은 당신이 인쇄 또는 디버그 메시지를 출력하지 않도록 관리 할 수있는이

log.level = Logger::DEBUG 

같은 로깅 수준을 설정하여 Logger

를 사용할 수 있습니다.

또한 출력 스트림을 선택할 수 있습니다, 그것은 콘솔을 수 또는 당신은 로거를 시도해야이

log = Logger.new(STDOUT) 
4

같은 파일을 수 있습니다.

require 'logger' 

$log = Logger.new(STDOUT) 
$log.level = Logger::DEBUG 

$log.debug "Sample debug message" 
$log.info "Sample info message" 
$log.error "Sample error message" 

인쇄 할 메시지 (예 : $log.level = Logger::DEBUG)를 변경하려면 한 줄만 변경하면됩니다. 또는 명령 행 옵션을 구문 분석하여 로거 레벨을 설정할 수 있습니다. 당신은 출력이 너무 장황 생각한다면

, 당신과 같이 다시 정의 할 수 있습니다

class Logger 
    def format_message(severity, timestamp, progname, msg) 
    "#{timestamp} #{msg}\n" 
    end 
end 
+0

그래서 ruby가 Logger :: INFO 메시지를 모두 인쇄 할 수 있습니까? Logger :: DEBUG는 표시하지 않습니까? – terietor

+0

@terietor 그래, [Logger] (http://www.ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html) 레벨은'FATAL','ERROR','WARN ','INFO','DEBUG' 등이 있습니다. 레벨을'INFO'으로 올리면 디버그 메시지를 얻지 못하게되며'ERROR'으로 올리면 오류와 치명적인 오류 만 발생합니다. –

0

이 보석 log_buddy

그것은 당신이 dev에 도움, 옆에 친화적 인 작은 로그 친구입니다을 시도, 디버그 및 테스트

관련 문제