Example:
@task_failure.connect
def process_failure_signal(sender=None, task_id=None, exception=None,
args=None, kwargs=None, traceback=None, einfo=None, **akwargs):
# From https://groups.google.com/d/msg/celery-users/lb3_5aAFesA/E1R4TIUiAwgJ
exc_info = (type(exception), exception, traceback)
logger.error(
'Celery job exception: %s (%s)' % (exception.__class__.__name__, exception),
exc_info=exc_info,
extra={
'data': {
'task_id': task_id,
'sender': sender,
'args': args,
'kwargs': kwargs,
}
}
)
Example: