我有一个小框架,它使用内置于ruby中的Logger对象记录一些信息和调试消息。在运行时,这很有效。在单元测试时(如果重要的话,使用rspec ...)我想将记录的消息转储到内存字符串变量中。这样做最简单的方法是什么?
我正在考虑一个替换信息和调试方法的猴子补丁,如下所示:
class Logger
def info msg
$logs = msg
super msg
end
end
有没有更好的方法将日志消息发送到字符串变量?
答案 0 :(得分:32)
使用StringIO
require 'stringio'
require 'logger'
strio = StringIO.new
l = Logger.new strio
l.warn "whee, i am logging to a string!"
puts strio.string