Rails:在lib目录中记录代码?

时间:2010-06-05 13:21:20

标签: ruby-on-rails ruby logging

为lib目录中保存的代码配置日志记录的最佳/最简单方法是什么?

2 个答案:

答案 0 :(得分:39)

有两种方法可以解决这个问题:

  • 假设您的库是自包含的并且有一个模块,您可以在模块中添加logger属性,并在库代码中的任何位置使用它。

    然后,您可以使用config/initializers/中的初始值设定项或config.after_initialize中的config/environment.rb块来初始化记录器,如下所示:

    require 'mylibrary'
    MyLibrary.logger = Rails.logger
    

    这仍然允许您使用Rails之外的脚本中的自包含库。哪个好,有时候。

  • 如果在没有Rails的情况下使用你的库根本没有意义,那么你也可以直接使用Rails.logger

在任何一种情况下,您都在处理标准的Ruby Logger。另请注意,理论上,记录器可能是nil

答案 1 :(得分:18)

我们可以直接在lib中使用Rails记录器,请参阅以下代码段。

require 'logger'

Rails.logger.info "Hay..!!! Im in lib"
Rails.logger.debug "Debugging this object from Lib #{object.inspect}"
Rails.logger.error "This is an error..."