我在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