2017-02-28 72 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