django celery.utils.log中的get logger函数和logging函数有什么不同?

efzxgjgh  于 2023-04-07  发布在  Go
关注(0)|答案(1)|浏览(147)

我一直试图找出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文档(最新版本,v3.1)在这个问题上非常缺乏。我已经看过类似的问题,如this one,但仍然不清楚使用哪一个,为什么使用那个,具体的区别是什么。我正在寻找一个清晰,简洁的答案。
我也在生产环境中使用sentry。此选择如何影响您的sentry日志?即these公共设置

lnxxn5zx

lnxxn5zx1#

从使用get_task_logger的经验来看,似乎可以让您获得一些重要的东西,特别是使用Sentry。

  • 自动将任务名称前置到日志输出
  • 在更高级别设置日志处理规则的能力,而不仅仅是模块(我相信它 * 实际上 * 将日志记录器名称设置为celery.task
  • 可能,对于Sentry设置来说最重要的是,它将日志挂接到Sentry使用的日志处理程序中。
    **重要提示:**有一个bit of extra config需要进入Celery注册Sentry:

https://docs.sentry.io/clients/python/integrations/celery/
您可能能够在没有这些设置的情况下将错误流入Sentry,但我认为这将为您提供最好的跟踪和细节+确保通过throws声明的预期异常等内容被正确忽略。

相关问题