你如何完全阻止Celery工作人员将任何消息打印到stdout?我试过了
celery worker --app proj --logfile=/dev/null
这将停止所有消息 EXCEPT 以下在启动时打印的消息:
-------------- <version>
---- **** -----
--- * *** * -- <OS>
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: <app>
- ** ---------- .> transport: <QUEUE>
- ** ---------- .> results: <DB>
- *** --- * --- .> concurrency: 10 <con>
-- ******* ----
--- ***** ----- [queues]
-------------- .> celery <exchange>
有没有办法阻止此消息在启动时打印?我正在使用一个新手脚本。
答案 0 :(得分:1)
我很久以前就放弃celery worker
支持celery multi
。 multi
超过worker
的一个优点是它不会产生您想要摆脱的输出。典型的输出是:
celery multi v3.1.23 (Cipater)
> Starting nodes...
> foo@localhost: OK
如果你想使用--quiet
选项,你甚至可以摆脱这一点输出。
我刚刚尝试使用celery worker
安静但仍然得到了不良输出。
答案 1 :(得分:0)
在celery worker.py源代码中this line解释了重定向日志文件的dev / null不能用于启动消息的原因。 正如您所看到的,启动消息是对stdout的打印。
要克服的一种方法是创建自己的worker.py版本,但我认为只需从日志文件中删除几行就会非常痛苦。
我无法想出解决问题的其他方法。