首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Celery中使用Python标准日志记录

在Celery中使用Python标准日志记录
EN

Stack Overflow用户
提问于 2011-08-04 19:55:41
回答 1查看 6.6K关注 0票数 20

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

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

代码语言:javascript
复制
@task
def add(x,y):
    process_one(x,y)
    process_two(x,y)

我如何实现Celery并使用Python标准日志记录来代替Celery日志记录,这样我们旧的日志记录系统就不会丢失?

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

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

代码语言:javascript
复制
$ 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日志记录会自动包含在我们的Celery日志记录中:不需要执行logger = add.get_logger()

EN

回答 1

Stack Overflow用户

发布于 2011-08-04 21:12:29

您可能需要此设置:

代码语言:javascript
复制
CELERYD_HIJACK_ROOT_LOGGER = False

告诉我这是怎么回事。

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

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6940987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档