Главная · Каталог задач · Настройка логирования Python-приложения

Готовый сценарий

Настройка логирования Python-приложения

Логирование Python становится полезным, когда одно событие записывается предсказуемо и связано с нужным запросом. Енотик поможет разобрать иерархию логгеров и формат записи. Учебный сервис печатает одно исключение дважды: обработчик стоит на app и на корневом логгере, а распространение включено. Нужно понять путь записи, не отключая все сообщения библиотеки. Для параллельных запросов отдельно проверьте, что их request_id не смешиваются в общем состоянии.

Попробуйте прямо здесь Отвечает Gemma 3 12B — модель подобрал сервис

Открыть в полном чате

  • Доступ без VPN
  • Русский интерфейс
  • Оплата рублями по факту

Зачем

Зачем это нужно

01

Нарисуйте путь записи от имени логгера до всех обработчиков.

02

Задайте единый контекст запроса и восстановление контекста после завершения.

03

Проверьте маскирование данных на фактически сформированной строке лога.

Вопросы

Частые вопросы

Как показать источник повторяющихся строк?

«Учебная ошибка app.api проходит через app и root; у обоих есть консольный handler. Ожидается одна строка со стеком». Передайте конфигурацию и место её вызова. Попросите различить распространение записи и повторную установку обработчиков. Затем дважды инициализируйте приложение в тесте: количество строк не должно увеличиваться из-за накопившихся handlers, даже если первоначальная схема уже исправлена.

Где хранить request_id для асинхронного кода?

Контекст должен соответствовать выполнению конкретного запроса, а не общей глобальной переменной. Попросите вариант для вашего фреймворка и способ сброса после завершения, включая исключение. В проверке чередуйте операции A и B: каждая запись должна сохранить собственный идентификатор. Если работа уходит в очередь или отдельный процесс, правила передачи контекста нужно описать отдельно, он не переносится волшебным образом.

Какие поля оставить в структурированном логе?

Время, уровень, имя операции, результат и согласованный идентификатор обычно полезнее полного тела запроса. Список зависит от задачи диагностики. Попросите пример JSON и тест на отсутствие токенов, cookie и паролей. Фильтр должен учитывать не только отдельные поля, но и сообщение исключения: чувствительное значение может уже оказаться внутри строки, прежде чем запись попадёт к форматтеру.

Когда выбирать stdout, а когда файл с ротацией?

Это зависит от способа запуска и системы сбора. В контейнере поток часто забирает внешний агент, на отдельной машине может использоваться журнал или файл. Для нескольких процессов нужна согласованная запись и ротация, иначе они будут мешать друг другу. Модель предложит конфигурацию по вашему окружению; реальные права, доставку и сохранность логов проверяйте отдельным тестовым событием.

Рядом

Дальше — весь каталог задач: поиск по названию, темы и фильтры.

Нужно больше

Весь Енотик — в одном окне

Полный чат: история, вложения, базы знаний, картинки и видео. Один баланс на все модели, оплата рублями по факту.