2017-02-28 46 views
0

我使用记录器类,但我得到错误。Ruby类记录器不起作用

代码: -

class Try 
    def method_missing(method_name, *args) 
    logger.warn "I am try to call #{method_name} with these arguments #{args}" 
    super 
    end 
end 
Try.new.dummy(1, "my name is rosy.") 

收到错误: -

stack level too deep (SystemStackError) 

请告诉我们。如何解决这个问题呢。

+3

我的猜测是,你调用'dummy'触发'method_missing'它调用'logger'(这是** **没有定义),它调用'method_missing'(用于调用'logger'),这调用'logger' ...这是Try类的全部源码吗? –

回答

2

我假设你不在Rails应用程序中。你是否实例化了logger实例?

require 'logger' 

logger = Logger.new(STDOUT) 
logger.level = Logger::WARN 

logger.warn "test" 
+0

谢谢!它的工作很好。 – test