different/celery_log_docker/celery_config.py

58 lines
1.8 KiB
Python

from celery import Celery
from celery.signals import after_setup_logger
from celery.utils.log import get_task_logger
# from server.settings.components import config
from pathlib import Path, PurePath
from decouple import AutoConfig
import logging
logger = logging.getLogger('My_logger')
# @after_setup_logger.connect
def conf_celery_logger(logger, **kwargs):
formatter = logging.Formatter(datefmt="%Y.%m.%d %H:%M:%S",
fmt='%(asctime)s | %(levelname)s | '
'process: %(process)d | '
'module name: %(name)s | '
'func name: %(funcName)s | '
'line number: %(lineno)s | '
'message: %(message)s',)
handler = logging.FileHandler('log.log')
handler.setLevel('DEBUG')
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel('DEBUG')
conf_celery_logger(logger)
# BASE_DIR = Path.cwd().parent.parent
BASE_DIR = PurePath(__file__).parent
config = AutoConfig(search_path=BASE_DIR.joinpath('config'))
RABBITMQ_DEFAULT_USER = config('RABBITMQ_DEFAULT_USER')
RABBITMQ_DEFAULT_PASS = config('RABBITMQ_DEFAULT_PASS')
RABBITMQ_PORT = config('RABBITMQ_PORT', cast=int, default=5672)
RABBITMQ_HOST = config('RABBITMQ_HOST')
celery_app = Celery(
'tasks',
broker='amqp://{login}:{password}@{host}:{port}'.format(
login=RABBITMQ_DEFAULT_USER,
password=RABBITMQ_DEFAULT_PASS,
host=RABBITMQ_HOST,
port=RABBITMQ_PORT,
),
backend='rpc://',
)
celery_app.config_from_object('config.celeryconfig')
# celery_app.conf.update({'worker_hijack_root_logger': False})
celery_app.autodiscover_tasks()
logger.info(f"{__name__} imported {celery_app.conf['worker_hijack_root_logger']}")