【发布时间】:2011-02-28 03:49:18
【问题描述】:
为保存在 lib 目录中的代码配置日志记录的最佳/最简单方法是什么?
【问题讨论】:
标签: ruby-on-rails ruby logging
为保存在 lib 目录中的代码配置日志记录的最佳/最简单方法是什么?
【问题讨论】:
标签: ruby-on-rails ruby logging
有两种方法:
假设您的库是独立的并且有一个模块,您可以将logger 属性添加到您的模块并在您的库代码中的任何地方使用它。
module MyLibrary
mattr_accessor :logger
end
然后,您可以使用config/initializers/ 中的初始化程序或config/environment.rb 中的config.after_initialize 块来初始化您的记录器,如下所示:
require 'mylibrary'
MyLibrary.logger = Rails.logger
这仍然允许您从 Rails 之外的脚本中使用自包含库。这很好,偶尔。
如果在没有 Rails 的情况下使用库真的没有意义,那么你也可以直接使用 Rails.logger。
在任何一种情况下,您都在处理标准的 Ruby Logger。还要记住,理论上,记录器可能是nil。
【讨论】:
ActiveSupport::BufferedLogger.new 而不仅仅是 Logger.new。我试过了,它没有用。
我们可以直接在lib中使用Rails logger,见下面sn-p。
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..."
【讨论】: