Update log docs

This commit is contained in:
Georgii Zhulikov 2025-07-08 13:26:44 +03:00
parent 5683b7fb5f
commit 015775dfe0

View file

@ -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': {