我正在开发将在 Rails 应用程序中使用的 rubygem。在这个 rubygem 中,我需要记录一些信息(警告、错误……)。
我看到一些 gem 可以做到这一点,比如 logging ,但显然我不需要配置日志输出(stdout,一些文件)。
我的 Rails 应用程序将消息记录在一个文件中。所以,我的问题是:有没有办法让我的 gem 使用与我的 Rails 应用程序使用的日志配置相同的日志配置?还是我的gem会根据自己的配置发送日志?
最佳答案
您可以直接使用 Rails.logger
,如果您的 gem 始终只在 Rails 应用程序中使用,那么这是有效的。您也可以为您的 gem 命名空间定义一个记录器,如果已定义,则默认为 Rails.logger
,如果未定义,则默认为 Logger.new(STDOUT)
,以及编写器,因此它是可覆盖的:
module MyGem
def self.logger
@@logger ||= defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
end
def self.logger=(logger)
@@logger = logger
end
end
无论如何,您将像这样使用它:
MyGem.logger.debug "it works"
关于ruby-on-rails - 如何在我的 rubygem 中写入将在 Rails 应用程序中使用的日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30623347/