0

我希望能够从 ruby​​ 类将内容记录到 Rail 的应用程序日志中。

我希望logger.info "some stuff"从 中的一个类做my_app/app/myClass.rb,但它没有定义。当我logger在我的控制器和其他地方使用它时,它可以工作。

我对 Rails / Ruby 有点陌生,我假设这仅仅是因为logger该类不包含在 中myClass.rb,但它自动包含在所有控制器、模型等中。

如何logger在任意 ruby​​ 类中包含该类,或者从 ruby​​ 类登录到我的 rails 应用程序?

(为“Pundit”添加了标签,因为我特别在 Pundit 策略文件中使用记录器,但它只是一个 ruby​​ 类:P)

4

2 回答 2

0

Object您可以在 rails 应用程序初始化过程中将应用程序的记录器加载到方法中

# config/initializers/my_logger.rb

class Object
  def mylog
    @logger ||= Rails.logger
  end
end

增强/更改Object课程应小心谨慎

于 2014-04-24T15:14:08.953 回答
0

如果您想创建自己的记录器:

class MyClass
  def initialize
     @app_logger = Logger.new("#{Rails.root}/log/app.log")
  end

  def othermethod
     @app_logger.info("anything here")
  end 
end 
于 2014-04-24T14:55:22.213 回答