来自 celery.utils.log 的获取记录器函数和日志记录有什么不同?
What is the different between the get logger functions from celery.utils.log and logging?
我一直在试图找出 python 记录器和芹菜记录器之间的区别,特别是下面命令之间的区别,但找不到好的答案。
我正在使用 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 设置最重要的是,它是否将日志记录挂钩到 Sentry 使用的日志处理程序中。
重要: 有一个 bit of extra config 需要进入 Sentry 的 Celery 注册:
https://docs.sentry.io/clients/python/integrations/celery/
如果不进行某些设置,您可能会导致错误流入 Sentry,但我认为这将为您提供最好的跟踪和详细信息 + 确保通过 throws
声明的预期异常之类的东西是正确的忽略。
我一直在试图找出 python 记录器和芹菜记录器之间的区别,特别是下面命令之间的区别,但找不到好的答案。
我正在使用 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 设置最重要的是,它是否将日志记录挂钩到 Sentry 使用的日志处理程序中。
重要: 有一个 bit of extra config 需要进入 Sentry 的 Celery 注册:
https://docs.sentry.io/clients/python/integrations/celery/
如果不进行某些设置,您可能会导致错误流入 Sentry,但我认为这将为您提供最好的跟踪和详细信息 + 确保通过 throws
声明的预期异常之类的东西是正确的忽略。