From b39619bb3e318148bbfc47e9677f953ea2257355 Mon Sep 17 00:00:00 2001 From: Omer Yampel Date: Wed, 28 Jun 2017 09:56:12 -0400 Subject: [PATCH] Celery task logging in place of blueprints When inside a celery task, this allows you to use the task name rather than a blueprint --- flask_logging_extras/__init__.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/flask_logging_extras/__init__.py b/flask_logging_extras/__init__.py index 44a3d45..c432a02 100644 --- a/flask_logging_extras/__init__.py +++ b/flask_logging_extras/__init__.py @@ -32,6 +32,11 @@ no value is present in the message record. import logging +try: + from celery import current_task: +except ImportError: + current_task = None + from flask import has_request_context, request __version_info__ = ('0', '0', '1') @@ -134,7 +139,9 @@ class FlaskExtraLogger(logging.getLoggerClass()): # If we were asked to log the blueprint name, add it to the extra list if self._blueprint_var is not None: - if has_request_context(): + if current_task: + kwargs['extra'][self._blueprint_var] = current_task.name + elif has_request_context(): kwargs['extra'][self._blueprint_var] = request.blueprint or self._blueprint_app else: kwargs['extra'][self._blueprint_var] = self._blueprint_norequest