我正在尝试将记录器添加到我的ruby应用程序中。我现在设置它的方式,记录器是在我的类的初始化方法中创建的。然后我尝试从同一个类中的其他方法访问它,但是我得到了一个范围错误,特别是:
undefined local variable or method "logger" (NameError)
这是指我第一次调用logger方法。如何从其他方法访问我以前创建的记录器?
以下是完整代码:
答案 0 :(得分:2)
它不应该是实例变量吗?尝试将记录器更改为@logger,以便可以在类实例中访问它。
答案 1 :(得分:1)
我在搜索了一些之后解决了自己的问题。对于有类似问题的任何人来说,添加记录器的最佳方法是在它自己的类中,结构如下:
class Log
def self.log
if @logger.nil?
# CREATE LOGGER HERE
end
@logger
end
end
答案 2 :(得分:1)
您也可以这样做: @logger || = Logger.new(' logfile.log')
那个|| =与if语句相同,如果它是nil则只创建该变量。