Встречается на 1% собеседований по Python
Как trace ID попадает в лог
В распределённых системах trace ID передаётся через контекст запроса и автоматически добавляется в логи с помощью инструментов логирования. Вот основные способы:
- Middleware/Interceptor
В веб-фреймворках (Django, FastAPI, Flask) middleware добавляет trace ID в контекст запроса и логи:
python
# FastAPI middleware example
from uuid import uuid4
from fastapi import Request
async def add_trace_id(request: Request, call_next):
trace_id = request.headers.get("X-Trace-ID", str(uuid4()))
request.state.trace_id = trace_id
text
# Логирование с trace_id
logger.info(f"Request started", extra={"trace_id": trace_id})
response = await call_next(request)
return responsetext
2. **Логгеры с контекстом**
Библиотеки типа `structlog` или `logging` с фильтрами:
```python
import logging
from contextvars import ContextVar
trace_id = ContextVar("trace_id")
class TraceFilter(logging.Filter):
def filter(self, record):
record.trace_id = trace_id.get()
return True
logger.addFilter(TraceFilter())- Инструменты observability
OpenTelemetry автоматически инжектит trace_id в логи через интеграцию с логгерами.
Ключевое: trace ID должен передаваться через весь контекст выполнения (async/thread-local/contextvars) и подхватываться логгером.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы