我应该在rails应用程序中定义resque logger的位置

时间:2015-06-11 09:30:05

标签: ruby-on-rails ruby resque

我已经在我的rails应用程序中设置了Resque,它一切正常。我的问题是记录器设置应该放在哪里。它应该在初始化程序中还是在rake任务中?它在两者中设置时都有效。我问的原因是我已经看到它在网上的例子中都使用过。

我认为它可能应该在初始化程序中,因为它是将setup设置为初始化程序的最佳实践。

config / initializers / resque.rb

logfile = File.open(File.join(Rails.root, 'log', 'resque.log'), 'a')
logfile.sync = true
Resque.logger = ActiveSupport::Logger.new(logfile)
Resque.logger.level = Logger::INFO

然后我在rake任务和作业中使用Resque.logger语法写出来。

E.G:

Resque.logger.info "Resque task started!"

非常感谢提前。

修改
我会坚持使用初始化程序。

2 个答案:

答案 0 :(得分:4)

我肯定会把它放在初始化程序中,因为在设置服务器时只需要调用一次。

答案 1 :(得分:0)

另一个选择:如果在初始化程序(config/initializers/resquer.rb)或rake(lib/tasks/resque.rake)中配置resreg logger并不适用于你,那么在每个作业中配置resque记录器,它不完美但只是起作用。

class OneJob
  def self.perform
    Resque.logger = Logger.new("#{Rails.root}/log/resque.log")
    Resque.logger.level = Logger::DEBUG   

    Resque.logger.info 'Job starts'
    ...
  end
en