ruby-on-rails 不要在Rails中记录特定的Sidekiq作业

aiazj4mn  于 2023-01-10  发布在  Ruby
关注(0)|答案(1)|浏览(163)

我在rails中有一个sidekiq作业,我不想让那个作业在bundle exec sidekiq中写日志,我该怎么做呢?
我正在使用以下命令获取日志:“sudo tail -n 1000 /var/log/syslog| grep sidekiq”。我的作业返回最后1000个sidekiq日志(1000行,每个作业大约有4行:start,enqueued with arguments(这部分显示了数据作业),performed,done),当我多次调用这个作业时,这会导致响应越来越大,因为这个作业的日志数据有最后1000个sidekiq日志。如果我调用它5次,这意味着最后的作业数据将是巨大的(几乎16000)。
我尝试使用chatgpt建议的logfilterer。我在lib文件中创建了logfilterer,并创建了新的logger,在/initializers/sidekiq.rb中将此日志的日志级别设置为错误级别,但这对我来说不起作用,或者我无法正确地做到这一点。我尝试获得1000个日志,并删除包含该作业名称的每一行,但不知何故,数据仍然越来越大。

k97glaaz

k97glaaz1#

您可以将stdout和stderr重定向到dev/null:

bundle exec sidekiq > /dev/null 2>&1

或者在Sidekiq初始化器中禁用日志记录:

Sidekiq.configure_server do |config|
  config.logger = Logger.new("/dev/null")
end

也就是说,您的问题并不清楚,因为您是专门针对“sidekiq”这个词进行grep的。您可以使用grep -v "sidekiq"来过滤包含“sidekiq”的行,因为通常情况下,禁用日志记录并不是一个好的实践。

相关问题