gpt4 book ai didi

django - 登录 Django/Celery 的 Sentry 停止工作

转载 作者:行者123 更新时间:2023-12-04 23:00:50 27 4
gpt4 key购买 nike

我不知道出了什么问题。到目前为止,日志记录工作正常(我一直依赖于此)但它似乎已经停止了。我写了一个小测试函数(它也不起作用):

core.tasks.py

import logging
from celery.utils.log import get_task_logger

logger = get_task_logger(__name__)
logger.setLevel(logging.DEBUG)

@app.task
def log_error():
logger.error('ERROR')

设置.py
INSTALLED_APPS += (
'raven.contrib.django.raven_compat',
)

LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'root': {
'level': 'INFO', #If set to DEBUG, prints ALL DJANGO debug logs.
'handlers': ['console', 'sentry'],
},
'formatters': {
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'handlers': {
#log everything to the console
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
'formatter': 'simple'
},
#logs directly to sentry
'sentry': {
'level': 'ERROR',
'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
#'class': 'raven.contrib.django.handlers.SentryHandler', #I have tried both
},
},
'loggers': {
'django.request':{
'handlers': ['console', 'sentry'],
'level': 'DEBUG',
'propagate': False,
},
'celery.task':{
'handlers': ['console', 'sentry'],
'level': 'DEBUG',
'propagate': False,
},
#this is the logger for celery itself
'celery':{
'handlers': ['console', 'sentry'],
'level': 'ERROR',
'propagate': False,
},
},
}

from logging.config import dictConfig
dictConfig(LOGGING)

在 Django shell 中执行以下命令会记录到控制台,但它不会到达 Sentry:
from core import tasks
tasks.log_error.delay()

它在同步执行任务时起作用:
tasks.log_error()

帮助!?

Django==1.6.2,乌鸦==5.0.0,哨兵==6.3.2,Python 2.7.3

最佳答案

我不得不添加

CELERYD_HIJACK_ROOT_LOGGER=False

到我的 Django settings.py。

我真的不明白为什么我必须明确地告诉 celery 不是 劫持根记录器。

关于django - 登录 Django/Celery 的 Sentry 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25320200/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com