我想仅更改Ruby 1.9.3 Logger中default_formatter的msg
部分。
我怎么能这样做?
我知道我可以做到
logger.formatter = proc do |severity, datetime, progname, msg|
"[mymessage] #{msg}\n"
end
然后我丢失了severity, datetime, progname
的其他默认格式。
理想情况下,我只想执行msg = "[mymessage] " + msg
,然后使用此新msg
执行默认格式化程序。
答案 0 :(得分:1)
根据example in documentation,可以执行以下操作:
require 'logger'
logger = Logger.new(STDOUT)
original_formatter = Logger::Formatter.new
logger.formatter = proc { |severity, datetime, progname, msg|
original_formatter.call(severity, datetime, progname, "[mymessage] #{msg}\n")
}
logger.debug("I am a debug msg")
logger.info("I am an info msg")
节目输出:
D, [2016-01-13T12:45:47.354261 #11512] DEBUG -- : [mymessage] I am a debug msg
I, [2016-01-13T12:45:47.354261 #11512] INFO -- : [mymessage] I am an info msg