我想在ruby中编写一个脚本。脚本的目标 是自动化cmake项目的构建过程。 我想添加大量的调试,但如果我使用put或 打印输出将始终可见,我不希望这样。
我想做点什么 my_script --debug $ foo
并获得与脚本开发相关的输出。
提前致谢
答案 0 :(得分:4)
你应该试试Logger。
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
答案 1 :(得分:1)
您可以使用Logger
通过设置此类记录级别
log.level = Logger::DEBUG
您可以设法打印或不打印调试信息。
您也可以选择输出流,它可以是控制台或文件,如
log = Logger.new(STDOUT)