как включить конкретный вывод отладки в ruby? - PullRequest
1 голос
/ 10 марта 2012

Я хочу написать скрипт на ruby.Цель сценария - автоматизировать процесс сборки проекта cmake.Я хочу добавить много отладки, но если я использую put или print, вывод всегда будет виден, и я этого не хочу.

Я хочу сделать что-то вроде my_script --debug $ foo

и иметь вывод, связанный с разработкой скрипта.

заранее спасибо

Ответы [ 2 ]

4 голосов
/ 10 марта 2012

Вы должны попробовать 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). Кроме того, вы можете проанализировать параметры командной строки, чтобы установить уровень Logger.

Если вы считаете, что вывод слишком многословен, вы можете переопределить его следующим образом:

class Logger
  def format_message(severity, timestamp, progname, msg)
    "#{timestamp} #{msg}\n"
  end
end
1 голос
/ 10 марта 2012

Вы можете использовать Logger

Установив уровень ведения журнала следующим образом

log.level = Logger::DEBUG

вы можете распечатать или не распечатать сообщения отладки.

Также вы можете выбрать поток вывода, это может быть консоль или файл, подобный этому

log = Logger.new(STDOUT)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...