Какую информацию содержат логи
Что проверяют
Умеете ли вы пользоваться логами как инструментом расследования, а не только знаете, что они существуют. Обычно следом дают ситуацию: пользователь получил ошибку 500, как вы найдёте причину и что приложите к баг-репорту.
Как отвечать
Начните с полей, которые есть в любой нормальной записи лога:
- время: с датой, миллисекундами и часовым поясом, лучше в UTC. Без этого события из разных сервисов не сопоставить;
- уровень:
DEBUG,INFO,WARN,ERROR, иногдаTRACEиFATAL. На продеDEBUGобычно выключен; - источник: сервис, модуль или логгер, хост или под в Kubernetes, версия сборки;
- сообщение и контекст: что произошло, эндпоинт, метод, код ответа, время обработки;
- идентификаторы:
request_idилиtrace_id, по которому собирается вся цепочка запроса через несколько сервисов, плюс id пользователя или сессии; - стектрейс: для исключений, с классом ошибки и строкой кода.
Потом назовите виды логов: логи приложения, access-логи веб-сервера (IP, метод, URL, статус, размер и время ответа), аудит действий пользователей, системные логи. В современных системах логи пишут структурированно, в JSON, и собирают в Kibana поверх Elasticsearch или OpenSearch либо в Grafana Loki. Для мобильных приложений это adb logcat и консоль Xcode, для фронтенда консоль и вкладка Network в DevTools.
Хорошо закончить практикой: вы находите запрос по времени и trace_id, идёте по цепочке сервисов до первой ошибки и прикладываете к багу фрагмент лога, а не весь файл. Отдельно скажите, чего в логах быть не должно: паролей, токенов, номеров карт и персональных данных в открытом виде. Такая находка сама по себе серьёзный баг.
Где спотыкаются
Перечисляют типы логов, но не могут объяснить, как по ним найти причину конкретной ошибки. Интервьюеру важен путь от симптома до строки с исключением.
Смотрят только последнюю запись с ERROR. Причина часто лежит выше: предупреждение о таймауте или ретрае за несколько секунд до падения.
Прикладывают к баг-репорту архив логов за сутки. Разработчику нужен короткий фрагмент вокруг ошибки с идентификатором запроса и точным временем.