Vic*_*tor 4 ruby logging ruby-on-rails
我正在开发一个将在rails应用程序中使用的rubygem.在这个rubygem我需要记录一些信息(警告,错误......).
我看到了一些宝石来做这个,比如日志,但显然我不需要配置日志输出(stdout,一些文件).
我的rails应用程序将消息记录在文件中.所以,我的问题是:有没有办法让我的gem使用我的rails应用程序使用的相同日志配置?或者我的宝石会根据自己的配置发送日志?
Jul*_*ier 10
您可以Rails.logger直接使用,如果您的gem始终只在Rails应用程序中使用,则该选项有效.您也可以为gem命名空间定义一个记录器,默认为Rails.loggerif if,Logger.new(STDOUT)如果不是,则与writer一起定义,因此它可以覆盖:
module MyGem
def self.logger
@@logger ||= defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
end
def self.logger=(logger)
@@logger = logger
end
end
Run Code Online (Sandbox Code Playgroud)
无论如何,您将使用它:
MyGem.logger.debug "it works"
Run Code Online (Sandbox Code Playgroud)