在芹菜中使用Python标准日志



我必须在一个预先存在的系统中实现芹菜。系统的前一个版本已经使用了Python标准日志。

我的代码类似于下面的代码。进程1和进程2是非芹菜函数,它们到处记录日志。如果有什么不好的事情发生,我们正在使用日志记录来跟踪数据丢失。

@task
def add(x,y):
    process_one(x,y)
    process_two(x,y)

我如何实现芹菜并使用Python标准日志记录而不是芹菜日志记录,所以我们的旧日志记录系统不会丢失?

我试图将import logging从Python更改为:logger = add.get_logger(),并将logger传递给所有函数,但我认为这不是一个好的做法。我需要另一个解决方案。

更新:要在芹菜日志中添加应用程序日志,您可以执行:

$ manage.py celeryd -v 2 -B -s celery -E -l debug --traceback 
  --settings=settings --logfile=/(path to your log folder)/celeryd.log

使用-l(日志)作为debug,我们的应用程序/Python日志会自动包含在我们的芹菜日志中:不需要执行logger = add.get_logger()

您可能需要这样的设置:

CELERYD_HIJACK_ROOT_LOGGER = False

告诉我这是怎么回事。

顺便说一句,它劫持根日志记录器的原因是因为一些写得不好库设置了日志记录,这是库永远不应该做的事情,这会导致用户体验不到celeryd的输出工作人员:(

相关内容

  • 没有找到相关文章

最新更新