class Foo
def method1
logger.info 'var1'
method2
end
def method2
logger.info 'var2'
method3
end
def method3
logger.info 'var3'
end
end
class Bar
def method4
logger.info 'var4'
method5
end
def method5
logger.info 'var5'
method6
end
def method6
logger.info 'var6'
end
end
def test
Foo.new.method1
Bar.new.method4
end
日志会是:
var1
var2
var3
var4
var5
var6
希望 test
方法最终产生的是汇总起来的日志,类似
{ var1: 'var1', var2: 'var2', var3: 'var3', var4: 'var4', var5: 'var5', var6: 'var6' }
目前能想到的方法是在 test
方法里生成一个变量,下面每个方法都把要记录的日志数据写进这个变量,最终在 test
方法结束时一起打印出来,但是这样意味这每个方法都要传入这个变量,如果需要全局使用的话意味着要引入全局变量,有什么好的解决方案吗?