Я использую 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')