Есть два вида сообщений об ошибках.
Первый:
Error
Второй:
PaymentServiceError: Failed to create payment. UserId=4821, OrderId=9182, Timeout after 5000 ms while requesting payment gateway.
Угадайте, какое из них поможет разобраться в проблеме? 😄
Когда на сервере происходит ошибка, разработчик часто узнаёт о ней не сразу. Пользователь просто пишет:
— У меня ничего не работает.
И вот тут начинается настоящее расследование.
Если в логах написано только «что-то пошло не так», остаётся лишь гадать:
🔹 какой пользователь поймал ошибку
🔹 какой запрос её вызвал
🔹 в каком сервисе всё сломалось
🔹 что именно произошло за секунду до сбоя
В итоге поиск причины может занять часы.
А иногда и дни.
Хороший лог — это практически готовый отчёт о происшествии. В нём обычно есть время ошибки, её тип, стек вызовов, идентификаторы пользователя или заказа (без чувствительных данных), параметры запроса и понятное описание того, что произошло.
Именно поэтому опытные разработчики тратят время не только на обработку ошибок, но и на их грамотное логирование.
Потому что ошибку ещё нужно суметь найти.
Есть даже шутка:
Половина времени на исправление бага — это не исправление. Это попытка понять, почему он вообще произошёл. 😄
💬 А вам уже попадались логи уровня "Error", после которых хотелось просто закрыть ноутбук?