簡體   English   中英

使用特定哨兵記錄器的芹菜任務不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM