Ruby记录器范围

时间:2016-08-08 00:18:40

标签: ruby function variables logging scope

我正在尝试使用ruby的内置记录器功能为我的程序创建一个简单的日志记录解决方案。目前,我所拥有的是记录器的初始化,如下所示:

class Setup

  def initialize
    logger = Logger.new(logfile.log)
    logger.level = 'DEBUG'
    logger.datetime_format = '%Y-%m-%d %H:%M:%S'

然后当我尝试使用以下命令调用同一类中其他函数中的记录器时:

logger.info('testlog')

我收到错误说:

undefined local variable or method 'logger'

我应该如何从其定义的方法的本地范围之外访问记录器?

提前致谢。

1 个答案:

答案 0 :(得分:1)

logger是一个局部变量,仅在定义它的区域中可见。将其重命名为@logger,使其成为一个实例变量,存储在对象中,可以从任何对象的方法中使用。