LoginSignup
2
0

More than 5 years have passed since last update.

delayed_jobのActiveRecordのログを消す

Posted at

Problem

delayed_jobを起動すると、以下のようなActiveRecordのログが定期的に出力されてしまい、他のログが見辛くなってしまう。

D, [2019-04-10T03:51:01.140319 #25947] DEBUG -- :   Delayed::Backend::ActiveRecord::Job Update All (0.4ms)  UPDATE `delayed_jobs` SET `delayed_jobs`.`locked_at` =..
D, [2019-04-10T03:51:06.142241 #25947] DEBUG -- :   Delayed::Backend::ActiveRecord::Job Update All (0.5ms)  UPDATE `delayed_jobs` SET `delayed_jobs`.`locked_at` =..
D, [2019-04-10T03:51:11.144010 #25947] DEBUG -- :   Delayed::Backend::ActiveRecord::Job Update All (0.4ms)  UPDATE `delayed_jobs` SET `delayed_jobs`.`locked_at` =..

Solution

config/initializers/delayed_job_config.rb に以下の設定をすると、DelayedJobのActiveRecordのログが出力されなくなります。

config/initializers/delayed_job_config.rb
unless Rails.env.development?
  module Delayed
    module Backend
      module ActiveRecord
        class Job
          class << self
            alias_method :reserve_original, :reserve
            def reserve(worker, max_run_time = Worker.max_run_time)
              previous_level = ::ActiveRecord::Base.logger.level
              ::ActiveRecord::Base.logger.level = Logger::WARN if previous_level < Logger::WARN
              value = reserve_original(worker, max_run_time)
              ::ActiveRecord::Base.logger.level = previous_level
              value
            end
          end
        end
      end
    end
  end
end

参考: https://github.com/collectiveidea/delayed_job/issues/886#issuecomment-409758672

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0