2017-02-12 58 views
0

我的项目使用rails 4.2.7delayed_job (4.0.6)delayed_job_active_record (4.0.3)。我们面临的问题是,延迟作业每分钟左右记录一次sql查询,这使得主日志文件变得不透明,并且浪费了我们的Logmatic订阅限制。延迟作业通常会记录到自己的日志中,但其主动记录查询最终将记录在主日志中。大多数条目是这样的:停止记录在Rails中延迟的作业活动记录条目

(0.8ms) SELECT COUNT(*) FROM `delayed_jobs` WHERE (failed_at is not NULL) 
(0.5ms) SELECT COUNT(*) FROM `delayed_jobs` WHERE (locked_by is not NULL) 
(0.7ms) SELECT COUNT(*) AS count_all, `delayed_jobs`.`queue` AS delayed_jobs_queue FROM `delayed_jobs` WHERE (run_at <= '2017-02-12 23:18:18.094189' and failed_at is NULL) GROUP BY `delayed_jobs`.`queue` 
(0.8ms) SELECT COUNT(*) AS count_all, `delayed_jobs`.`priority` AS delayed_jobs_priority FROM `delayed_jobs` WHERE (run_at <= '2017-02-12 23:18:18.095817' and failed_at is NULL) GROUP BY `delayed_jobs`.`priority` 

以前开发商介绍这里描述此delayed_job的消音器: How to ignore Delayed Job query logging in development on Rails 但它似乎没有工作,因为查询在分期的日志及Logmatic仍然记录。

有没有办法停止记录这些(如果它们不能被完全沉默,可能会将它们重定向到另一个文件)?假设我们仍然想记录与delayed_job不相关的条目。

回答

0

您可以更改的DJ工作者日志中这样的初始化日志文件:

Delayed::Worker.logger = Logger.new(File.join(Rails.root, 'log', 'delayed_job.log')) 

这应该清理你的主要日志。

编辑:刚才看到,这不会影响AR日志。

您是否尝试将DJ日志级别设置为info而不是调试?