Настройки логов в Джанго:
CELERYD_HIJACK_ROOT_LOGGER = False
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'colored': {
'()': DjangoColorsFormatter,
'format': '[%(asctime)s] - %(levelname)s - %(message)s \n',
'datefmt': '%d/%b/%Y %H:%M:%S',
},
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'colored',
},
},
'loggers': {
'': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': False,
},
'django.request': {
'level': 'DEBUG',
'handlers': ['console'],
'propagate': False,
}
},
}
from celery.utils.log import get_task_logger logger = get_task_logger(__name__) @app.task() def my_new_task(): raise Exception('spam-eggs')
Да, можно сделать:
def my_new_task(): try: ... except: import traceback logger.info(traceback.format_exc())
Гугл выдает обсуждения типа вот такого, но предложенные там решения тоже костыли.
Что я делаю не так?