나는 루비에서 스크립트를 작성하고 싶다. 스크립트 의 목표는 cmake 프로젝트의 빌드 프로세스를 자동화하는 것입니다. 많은 디버그를 추가하고 싶지만 puts 또는 출력을 사용하면 출력이 항상 표시되고 싶지 않습니다.루비에서 특정 디버그 출력을 활성화하려면 어떻게해야합니까?
나는 my_script를 --debug의 $ foo는
같은 뭔가를하고 스크립트의 개발과 관련된 출력을 갖고 싶어. 사전
나는 루비에서 스크립트를 작성하고 싶다. 스크립트 의 목표는 cmake 프로젝트의 빌드 프로세스를 자동화하는 것입니다. 많은 디버그를 추가하고 싶지만 puts 또는 출력을 사용하면 출력이 항상 표시되고 싶지 않습니다.루비에서 특정 디버그 출력을 활성화하려면 어떻게해야합니까?
나는 my_script를 --debug의 $ foo는
같은 뭔가를하고 스크립트의 개발과 관련된 출력을 갖고 싶어. 사전
에서
덕분에 당신은 당신이 인쇄 또는 디버그 메시지를 출력하지 않도록 관리 할 수있는이
log.level = Logger::DEBUG
같은 로깅 수준을 설정하여 Logger
를 사용할 수 있습니다.
또한 출력 스트림을 선택할 수 있습니다, 그것은 콘솔을 수 또는 당신은 로거를 시도해야이
log = Logger.new(STDOUT)
같은 파일을 수 있습니다.
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
이 보석 log_buddy
그것은 당신이 dev에 도움, 옆에 친화적 인 작은 로그 친구입니다을 시도, 디버그 및 테스트
그래서 ruby가 Logger :: INFO 메시지를 모두 인쇄 할 수 있습니까? Logger :: DEBUG는 표시하지 않습니까? – terietor
@terietor 그래, [Logger] (http://www.ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html) 레벨은'FATAL','ERROR','WARN ','INFO','DEBUG' 등이 있습니다. 레벨을'INFO'으로 올리면 디버그 메시지를 얻지 못하게되며'ERROR'으로 올리면 오류와 치명적인 오류 만 발생합니다. –