[英]Celery tasks using specific sentry logger not working
以下哨兵用於芹菜集成的示例,由於哨兵收到任何錯誤或任何記錄器,因此無法使用特定的記錄器。 無論如何要控制記錄器發送到哨兵?
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時,它按預期方式工作並且沒有發送到哨兵,但是在芹菜中,它被發送了
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',
},
}
}
在您的Django日志記錄設置中設置一個celery
logger,如下所示:
LOGGING = {
# ...
'loggers': {
# ...
'celery': {
'level': 'WARNING',
'propagate': False,
'handlers': ['console'], # use only console for celery
},
}
}
在您的celery.py
:
import os
from celery import Celery
# set your real settings module instead `apps.settings`
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'apps.settings')
app = Celery('ag')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.