2017-08-13 4 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トレースするとき、それはしかし、セロリ、それはあなたのDjangoのログに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', 
     },  
    } 
} 
+0

私は、register_logger_signalで指定したロガーだけでなく、すべてのロガーを動作させています。それは私が望むものです –

+0

djangoの設定で 'LOGGING'変数を表示してください。 –

+0

' LOGGING'の設定を追加しました –

答えて

0

送られ、歩哨に送られ期待どおりに動作していない、私のログ設定されていますこのような設定は:で

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

私は既にセントリハンドラで1つのロガーを設定しています。セロリーはセロリーを送信しています。具体的にしようとしています –

+0

@JuanMadurga説明のためのおかげで:)私は答えを更新しました。 –

+0

@AntonShurasov私はまだ守衛の他のロガーで受信しているだけでなく、 'register_logger_signal(クライアント、logger = sentry_logger) –

関連する問題