в консоль сыпет сообщения? Или это не считают проблемой?
а почему это проблема?
имхо, много по сути не нужных для тестах сообщений валятся в консоль, условно какой-нибудь пайплайн можно заколебаться листать потом
он должен быть зеленый, его не надо листать.
должен, но не всегда так бывает
кладешь test logger в контекст, и проблемы нет
А когда не бывает, логи как раз могут помочь понять, почему он не зеленый
в тестах немного другой механизм сообщения о том, почему он провалился)
Смотря что за тесты
Так и при пробросе через контекст можно передавать в контекст логгер, который пишет в никуда или в тестовый буффер
да, можно, как по мне это лишние дополнительные действия. плюс каждый раз класть в контекст значение, которое на самом неделе не часть контекста семантически, а указатель куда-то да, хз даже. Ещё может бычть случай что забыли положить логгер и об этом не узнать и там и так и дальше будет на каждый запрос новый создаваться, для мнея это очень неявно выглядит
именно. контекст это средства управления логером, а еще я сделал миддлтварь, которая из хттп заголовка или из меты grpc вытаскивает уровень логгирования и в рантайме, меняет уровень логирования для конкретного запроса. сколько же этот функционал помог исправить багов на проде, мамма-мия
логгер вам в каждом тесте все равно придется создавать. Дальше только вопрос как его пробрасывать. Из моей практики проброс через контекст грязнее, но удобнее
А можешь объяснить? Ну вот логируешь ты ошибки как Error. Зачем тут менять уровень на другой в рантайме?
Так у тебя, например, куча методов пишет в трейс, но у логгера уровень инфо, чтобы не спамить в лог кучей данных. И конкретно для одного запроса ты хочешь получить трейс ради дебага
Если прод высоконагоуженный, то ты всякие инфо не легируешь уже
ну вот вызываешь ты метод /api/jobIsDone?user_id=123 и он делает не так как ты хочешь. и не понятно почему. пошел и вызвал его с уровнем логирования трейс в заголовке, получил тонну данных для анализа проблемы.
Заодно сенсетив дата 😄
я возможно логирую как-то по-другому. Ты же в коде пишешь logger.Info(123) как у этого менять уровень?
Речь о log level.
ну Info - это log level
Мок или забить
Можно логгеру дать io.Discard
Обсуждают сегодня