Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在我的gem中向Rails记录器写入_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 如何在我的gem中向Rails记录器写入

Ruby on rails 如何在我的gem中向Rails记录器写入,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我有一个我写的gem,我在rails应用程序中使用它 我想从我的gem中写入rails记录器,但很明显,那里不存在标准的rails记录器 >你应该能够使用 Rails。Logger-< /Cord>你可能想考虑让你的GEM使用可配置的记录器,即允许用户将 MyGeal.Logger-设置为他们想要的任何记录器。p> 您可以将其默认为只写入stdout的内容,在rails应用程序中,您可以在初始化器中设置MyGem.logger=rails.logger。在rails之外使用您的gem的人也可以

我有一个我写的gem,我在rails应用程序中使用它

我想从我的gem中写入rails记录器,但很明显,那里不存在标准的rails记录器


>你应该能够使用<代码> Rails。Logger-< /Cord>你可能想考虑让你的GEM使用可配置的记录器,即允许用户将<代码> MyGeal.Logger-<代码>设置为他们想要的任何记录器。p>


您可以将其默认为只写入stdout的内容,在rails应用程序中,您可以在初始化器中设置
MyGem.logger=rails.logger
。在rails之外使用您的gem的人也可以这样做。

正如Frederick Cheung所说,您应该为您的gem使用命名空间记录器:
MyGem.logger

然后将其设置为Railtie中的Rails记录器,以便您的gem在Rails内外都能很好地工作

module MyGem
  class Railties < ::Rails::Railtie
    initializer 'Rails logger' do
      MyGem.logger = Rails.logger
    end
  end
end
模块MyGem
类别Railties<::Rails::Railtie
初始值设定项“Rails logger”do
MyGem.logger=Rails.logger
结束
结束
结束

Rails.logger.debug怎么样?或
Rails.logger.info
等。?