我应该在我的 rails 应用程序中的什么地方定义我的 resque 记录器

Where should I define my resque logger in my rails application

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

我认为它可能应该在初始化程序中,因为最好的做法是将设置放入初始化程序中。

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 语法写出来。

例如:

Resque.logger.info "Resque task started!"

非常感谢。

编辑
那么我会坚持使用初始值设定项。

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

另一种选择:如果在初始化程序(config/initializers/resquer.rb)或 rake(lib/tasks/resque.rake)中配置它,则在每个作业中配置 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