我一直在试图找出 python 记录器和 celery 记录器之间的区别,特别是下面命令之间的区别,但找不到好的答案。
我正在使用 celery v3 和 django 1.10。
from celery.utils.log import get_task_logger
logger = get_logger(__name__)
...
from celery.utils.log import get_task_logger
logger = get_task_logger(__name__)
...
import logging
logger = logging.get_logger(__name__)
celery 文档(latest,v3.1)非常缺乏关于这个主题的内容。 我看过类似的问题,例如 this one , 但仍然不清楚使用哪个,为什么使用那个,以及具体有什么区别。我正在寻找一个清晰、简洁的答案。
我也在我的生产环境中使用哨兵。这个选择如何影响你的哨兵日志?即 these常用设置
最佳答案
根据使用 get_task_logger
的经验,您似乎可以获得一些重要的东西,尤其是使用 Sentry 时。
- 自动将任务名称添加到您的日志输出中
- 能够在更高级别设置日志处理规则,而不仅仅是模块(我相信这是实际上将记录器名称设置为
celery.task
) - 可能对于 Sentry 设置来说最重要的是,它是否将日志记录 Hook 到 Sentry 使用的日志处理程序中。
重要:有一个bit of extra config需要进入 Sentry 的 Celery 注册:
https://docs.sentry.io/clients/python/integrations/celery/
如果不进行某些设置,您可能会导致错误流入 Sentry,但我认为这将为您提供最好的跟踪和详细信息 + 确保诸如通过 throws
声明的预期异常之类的事情被适本地忽略了。
关于python - celery.utils.log 和 logging 中的 get logger 函数有什么不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43301265/