Прод сломался, открываешь логи - а там каша, по которой не понять, что случилось
Логи есть, а толку ноль
Как пишут обычно и как надо
❌ Плохо:
log.info("ошибка")✅ Хорошо:
log.error("платёж отклонён", user_id=42, order_id=1001, reason="insufficient_funds")Логи читает не глаз, а поиск по ним
"ошибка" без контекста - мусор, по которому ничего не найдёшь
Пиши что случилось плюс ключевые поля: кто, что, почему
Такой лог фильтруется и собирается в статистику
❌ Плохо:
log.info("готово")
log.info("всё ок")✅ Хорошо: уровни по делу
Когда всё подряд на уровне info, в потоке событий тонет важное
Раздели: debug для отладки, info для нормальных событий, warning для странного, но терпимого, error для сломанного
В проде отключаешь шум и оставляешь важное
❌ Плохо:
log.info(f"юзер {user} с картой {card_number} и токеном {token}")✅ Хорошо: без секретов
Пароли, номера карт, токены, персоналку в логи лить нельзя
Логи оседают в куче систем, их видят десятки людей, они утекают
Маскируй чувствительное или не пиши вовсе - это требование безопасности, а не просто аккуратность
❌ Плохо:
Один запрос размазан по логам без связи
✅ Хорошо: сквозной id запроса
Когда параллельно летят сотни запросов, их логи перемешаны в один поток
Без общего идентификатора не понять, какие строчки относятся к одному запросу
Протащи request_id через все логи запроса (а в микросервисах - через все сервисы), и вытащишь всю цепочку одним фильтром
🎯 Простой критерий
Лог ты пишешь не себе и не сейчас
Его будет читать дежурный в три ночи - возможно, не ты, а тот, кто твой код видит впервые
И момент инцидента уже не переиграть: воспроизвести на нём нельзя, лог - единственный след
Так что проверяй каждую строчку одним вопросом: хватит ли этого незнакомому человеку, чтобы понять, что сломалось, без похода в исходники?
Хватит - лог свою работу сделал
Расскажите в комментариях, самые смешные логи, которые вы встречали на проектах и продуктах, где работали? 🤔
#backend #logging #observability #dev #programming #devops