sách gpt4 ai đã đi

python - Celery Python 日志记录配置仅从指定模块记录 DEBUG

In lại 作者:行者123 更新时间:2023-11-30 23:36:09 26 4
mua khóa gpt4 Nike

我正在尝试让 django celery 记录(到控制台)来 self 的模块(而不是库的模块)的 DEBUG(及更高版本)事件。所以启动 celeryd 是:

python hack/manage.py celeryd -E -l DEBUG -c 2

意味着所有 DEBUG 事件都会传递到控制台(这是我的根记录器上的处理程序)。我想修改此行为以便:

  • 来自 mymodule(和子模块)的 DEBUG 事件转到控制台
  • 来自所有其他模块的 DEBUG 事件将被忽略(例如:转到 Null 处理程序)
  • 所有其他事件均按正常方式处理(例如:错误继续转到邮件处理程序)

最好的方法是什么?

1 Câu trả lời

我遇到了这个问题,并且没有一个“最佳”方法可以做到这一点。记住一些事情很重要。

  • Celery 在生产环境中作为单独的可执行文件运行。这看起来很明显,但这意味着与其他东西(如 django)共享日志文件不会很好地工作(参见 CELERYD_HIJACK_ROOT_LOGGER ),所以不要这样做..
  • 在生产环境和开发环境中保持事物以类似的方式运行非常重要,这样当您转向生产时就不会出现问题(请参阅 CELERY_ALWAYS_EAGER 并使用它)
  • 如果您使用设置,从manage.py运行时Celery将引用您的settings.py文件进行配置

考虑到这一点,我建议您如何设置日志记录以满足您的需求。首先确保您正确设置了模块的日志记录级别。看我的other post关于如何设置日志记录。这是满足您需求的精简版本

LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'standard': {
'format': "[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s",
'datefmt': "%d/%b/%Y %H:%M:%S"
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'()': 'logutils.colorize.ColorizingStreamHandler',
'formatter': 'standard',
'stream': sys.stdout
},
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
'include_html': True,
},

},
'loggers': {
'django': {
'handlers': ['mail_admins'],
'propagate': True,
'level': 'ERROR',
},
'mymodule': {
'handlers': ['console', 'mail_admins'],
'propagate': True,
'level': 'DEBUG'

},
}
}

然后像这样运行它。

./manage.py celeryd --event --beat --settings=dev

它的作用是设置两个不同的处理程序。第一个是控制台处理程序,它报告任何 DEBUG 及以上内容。第二个是邮件处理程序,仅查看错误及以上错误。接下来是记录器报告的内容。所有 django.* 记录器都将报告给任何错误级别处理程序 (mail_admins)。我们的任何模块都会将 DEBUG 及以上推送到两者。

我想这就是你所追求的。

关于python - Celery Python 日志记录配置仅从指定模块记录 DEBUG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16760385/

26 4 0
Bài viết được đề xuất: python 正则表达式子%H :%M:%S to %M:%s or 01:%M:%s
Bài viết được đề xuất: php - 我如何在日期和状态之间求和
Bài viết được đề xuất: python - 导入不属于我当前 Python 2.X 版本的特定模块
Bài viết được đề xuất: python - 访问 Tkinter 中的顶级小部件
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com