不要在 Rails 中记录特定的 sidekiq 作业



我在rails中有一个sidekiq作业,我不希望该作业写log in bundle exec sidekiq。我该怎么做?

我正在使用命令"sudo tail -n 1000/var/log/syslog | grep sidekiq"获取日志。我的作业返回最后1000个sidekiq日志(1000行,每个作业大约有4行:开始,带参数排队(这部分显示了所采取的数据作业),执行,完成),当我多次调用此作业时,这会导致响应越来越大,因为此作业的日志数据有最后1000个sidekiq日志。如果我调用它5次,这意味着最后的工作数据将是巨大的(几乎16000)。

我尝试使用chatgpt建议给我的日志过滤器。我在lib文件中创建了logfilterer,并创建了新的记录器,将该日志的日志级别设置为/initializers/sidekiq中的错误级别。但这对我不起作用,或者我不能正确地做。我试图获得1000个日志并删除每一行包含该作业名称,但不知何故数据仍然变大。

可以将标准输出和标准错误重定向到dev/null:

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

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

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

也就是说,你的问题不清楚,因为你是专门为"sidekiq"词。您可以使用grep -v "sidekiq"来过滤包含"sidekiq"的行,因为一般来说,禁用日志记录不是一个好做法。

禁用特定作业的日志记录似乎没有实现。不过,为了最小化日志记录,可以将作业中的日志级别设置为:fatal:

sidekiq_options log_level: :warn

最新更新