diff --git a/pages/logs.md b/pages/logs.md index 1f6374b..cb0ceb5 100644 --- a/pages/logs.md +++ b/pages/logs.md @@ -94,15 +94,18 @@ fileConfig("logging.conf") ### Формат с добавлением request_id + +`request_id` - это идентификатор корреляции, уникальный идентификатор, который присваивается каждому запросу. Он позволяет провести соответствие между записями в логах и запросами к сервису модели. + +Этот идентификатор представляет из себя строку. Если при запросе к сервису модели в заголовке `X-Request-Id` была передана строка, она используется в качестве идентификатора корреляции запроса. Если при запросе заголовок `X-Request-Id` не передан, идентификатор корреляции генерируется сервисом. В ответе на запрос к сервису модели в заголовке `X-Request-Id` идентификатор корреляции возвращается в любом случае - передан он был в запросе или нет. + Для добавления `request_id` в логи достаточно изменить формат на следующий: ``` "[%(asctime)s] %(name)-15.15s [%(levelname)-8.8s] [%(request_id)s] %(message)s" ``` -Но в таком случае при локальном выполнении кода возникнет ошибка - значение `request_id` устанавливается при обработке запроса в модуле, чего локально не происходит. - -Чтобы эта ошибка не возникала, рекомендуется использовать функцию-фильтр, добавляющую поле `request_id` в объект `LogRecord`, полями которого заполняется строка логов. +`request_id` добавляется в запись логов при обработке запроса сервисом модели. Чтобы логирование с `request_id` не приводило к ошибкам при выполнении кода модуля вне сервиса, рекомендуется использовать функцию-фильтр, добавляющую поле `request_id` в объект `LogRecord`, полями которого заполняется строка логов. #### Фильтр напрямую в коде @@ -174,7 +177,7 @@ from logging.config import dictConfig dictConfig({ 'version': 1, 'formatters': { - 'validation': { + 'default_format': { 'format': '[%(asctime)s] %(name)s [%(levelname)s] %(message)s', } }, @@ -182,7 +185,7 @@ dictConfig({ 'default': { 'class': 'logging.StreamHandler', 'stream': 'ext://sys.stdout', - 'formatter': 'validation', + 'formatter': 'default_format', } }, 'loggers': {