如何正确使用logger以及如何在Ruby和Rails中使用相同的记录器

时间:2013-06-06 09:33:40

标签: ruby-on-rails ruby logging

很抱歉,如果这是一个非常基本的问题,但在我在这里检查了很多条目(并尝试实施解决方案)后,我仍然没有答案......

我们的目标是拥有一个ruby类,可以在ruby脚本和ruby on rails模型中使用版本(或尽可能少的版本)。我想要以下

logger.info 'some tracing'

然而,当我在ruby类中添加这样的语句时,我收到了错误消息 - 在ruby和ruby上的unknow方法记录器。好。当我这样修改它时

Rails.logger.info 'some tracing'

它开始在rils中工作,但当然在没有rails的ruby中不起作用。我做错了什么? 我读了这个http://guides.rubyonrails.org/debugging_rails_applications.html#the-logger但我仍然感到困惑,因为“发送消息”部分的例子不起作用。 所以很抱歉再次,但我认为没有其他可能连接到“蜂巢心灵”并寻求帮助; - )

1 个答案:

答案 0 :(得分:1)

Rails默认使用ruby记录器。

请在此处查看API文档:Logger (Ruby 2.0)

以下是一个例子:

require 'logger'

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

logger.debug("Created logger")
logger.info("Program started")
logger.warn("Nothing to do!")

修改

用法:

require 'logger' 

class MyClass 

  def initialize
    @logger = logger = Logger.new(STDOUT)
    @logger.level = Logger::WARN
  end

  def say_something
    @logger.info("You can't see me I'm not important enough")
    @logger.warn("I'm visible")
  end

end