2017-08-13 63 views
1

哨兵集成和使用特定记录器的哨兵示例不起作用,因为哨兵正在接收任何错误或任何记录器。 无论如何控制伐木者发送到哨兵?使用特定哨兵记录器不工作的芹菜任务

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') 

这些都是我的日志记录设置,当我跟踪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', 
     },  
    } 
} 
+0

我有哨兵工作正常所有记录器不仅仅是我在register_logger_signal中指定的记录器。那就是我想要的 –

+0

在django设置中显示你的'LOGGING'变量,请 –

+0

增加'LOGGING'设置 –

回答

0

在你的Django的日志记录设置一个celery记录仪设置这样的:

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() 
+0

我已经配置了一个记录器和哨兵处理程序问题是芹菜正在发送哟哨兵其他记录器nota处理程序由哨兵这就是我试图是具体的 –

+0

@JuanMadurga感谢您的解释:)我更新了答案,请检查 –

+0

@AntonShurasov我仍然在哨兵接收其他记录器不仅一个配置'register_logger_signal(客户端,记录器= sentry_logger)' –