私はRubyでスクリプトを書いています。スクリプト の目標は、cmakeプロジェクトのビルドプロセスを自動化することです。 多くのデバッグを追加したいのですが、putsまたは の出力を使用すると、出力は常に表示され、その必要はありません。rubyで特定のデバッグ出力を有効にする方法はありますか?
私は my_scriptという--debug $ fooという
ような何かをするために、スクリプトの開発に関連した出力を持っていると思います。事前
私はRubyでスクリプトを書いています。スクリプト の目標は、cmakeプロジェクトのビルドプロセスを自動化することです。 多くのデバッグを追加したいのですが、putsまたは の出力を使用すると、出力は常に表示され、その必要はありません。rubyで特定のデバッグ出力を有効にする方法はありますか?
私は 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"
あなただけ印刷されるべきメッセージを決定する1つのライン(すなわち$log.level = Logger::DEBUG
)を変更する必要があります。あるいは、コマンドラインオプションを解析してLoggerレベルを設定することもできます。
あなたは出力があまりにも冗長であると思われる場合は、そのようにそれを再定義することができます。
class Logger
def format_message(severity, timestamp, progname, msg)
"#{timestamp} #{msg}\n"
end
end
は、それはあなたのdevの助け、あなたの側で優しい小さなログバディであるlog_buddy
この宝石を試してみてください、デバッグ、およびテスト。
したがって、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'の3つです。レベルを 'INFO'に上げると、デバッグメッセージは得られません。また、' ERROR'に上げると、エラーや致命的なエラーしか出ません。 –