2016-09-01 3 views
3

私のCeleryアプリケーションでは、セロリのアプリケーションログとタスクレベルのログの2種類のログを取得しています(ログのlogger.INFO(str)構文を使用しています)celeryのすべてのログをカスタムハンドラに送信する方法。私の場合はpython-logstashのハンドラ

私はsettings.pyでハンドラやロガーを設定することで、私は成功したDjangoのログ用のカスタムハンドラ(私の場合のpython-logstashハンドラ)

にそれらの両方を送りたいと思ったが、私はセロリ

答えて

0
と無力です
def initialize_logstash(logger=None,loglevel=logging.DEBUG, **kwargs): 
    # logger = logging.getLogger('celery') 
    handler = logstash.TCPLogstashHandler('localhost', 5959,tags=['worker']) 
    handler.setLevel(loglevel) 
    logger.addHandler(handler) 
    # logger.setLevel(logging.DEBUG) 
    return logger 

from celery.signals import after_setup_task_logger 
after_setup_task_logger.connect(initialize_logstash) 
from celery.signals import after_setup_logger 
after_setup_logger.connect(initialize_logstash) 

after_setup_task_loggerとafter_setup_loggerシグナルの両方を使用して問題

関連する問題