Как добавить request_id в логах используя Python Flask? - PullRequest
0 голосов
/ 05 марта 2020

Я использую Flask для создания веб-приложения и использую регистратор Python для ведения журнала. Я хочу иметь возможность различать журналы, созданные для каждого запроса. Я имею в виду что-то вроде

[request_1] log 1
[request_1] log 2
[request_2] log 1
[request_2] log 2
[request_3] log 1
[request_3] log 2

С указанным выше форматом я могу отфильтровать и проверить все журналы из конкретного запроса.

Есть ли способ сделать это, не добавляя request_id вручную для каждого из сообщений журнала?

Текущий подход

Сейчас я делаю это так. Но, как вы видите, он не очень чистый, и есть большие шансы, что мы можем забыть добавить request_id во время кодирования.

from flask import g

log = logging.getLogger(__name__)

@app.route('/')
def default_route():

    g.request_id = "[{}] ".format(str(uuid4()))

    log.debug(g.request_id + 'this is a DEBUG message')
    log.info(g.request_id + 'this is an INFO message')
    log.warning(g.request_id + 'this is a WARNING message')
    log.error(g.request_id + 'this is an ERROR message')
    log.critical(g.request_id + 'this is a CRITICAL message')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...