【发布时间】:2018-01-21 15:42:39
【问题描述】:
按照 celery 集成的哨兵示例并使用特定记录器无法正常工作,因为哨兵正在接收任何错误或任何记录器。 无论如何要控制记录器发送到哨兵?
import logging
import celery
import raven
from raven.contrib.celery import register_signal, register_logger_signal
sentry_logger = logging.getLogger("logger_for_sentry")
class Celery(celery.Celery):
def on_configure(self):
client = raven.Client('https://<key>:<secret>@sentry.io/<project>')
# register a custom filter to filter out duplicate logs
register_logger_signal(client, logger=sentry_logger)
# hook into the Celery error handler
register_signal(client)
app = Celery(__name__)
app.config_from_object('django.conf:settings')
这些是我的日志记录设置,当我在 web 上跟踪 my_logger1 时,它按预期工作并且没有发送到哨兵,但是在 celery 中它被发送
LOGGING = {
...
'loggers': {
'sentry_logger': {
'handlers': ['console', 'sentry'],
'level': 'INFO',
'propagate': True,
},
'my_logger1': {
'handlers': ['console'],
'level': 'INFO',
'propagate': True
},
'sentry': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
},
'sentry.errors': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
},
}
}
【问题讨论】:
-
我的哨兵工作正常,所有记录器不仅是我在 register_logger_signal 中指定的记录器。这就是我想要的
-
请在 django 设置中显示您的
LOGGING变量 -
添加了
LOGGING设置
标签: python django logging celery sentry