2012-01-01 34 views
11

我有一个我写的宝石,我在我的Rails应用程序中使用它。我如何写入我的宝石中的Rails记录器

我想写从我的宝石轨记录器,但显然标准导轨logger不存在那里。

什么是实现我想要做的正确方法?

+0

怎么样'Rails.logger.debug'?或者'Rails.logger.info'等等? – 2012-01-01 12:51:32

回答

8

尽管您应该可以使用Rails.logger,但您可能需要考虑让记录器使用可配置的gem,即允许用户将MyGem.logger设置为他们想要的任何记录器。

你可以把它默认的东西,只是写到stdout,在一个Rails应用程序,你可以在初始化器设置MyGem.logger = Rails.logger。在轨道外使用宝石的人也可以这样做。

15

弗雷德里克翔说,你应该使用一个命名空间记录你的宝石:MyGem.logger

让你的宝石作品很好内外和Rails之外,那么将其设置为Rails的记录器在Railtie。

module MyGem 
    class Railties < ::Rails::Railtie 
    initializer 'Rails logger' do 
     MyGem.logger = Rails.logger 
    end 
    end 
end 
+0

Tnx,这很有帮助 – gilsilas 2012-01-02 10:51:36