2017-08-13 49 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)' –