level, msg:
⁃ писать имя сервиса в лог
⁃ писать request_id
Результат в вакууме:
time="2020-10-07T23:35:19+08:00" level=info service=payment request_id=u-u-i-d msg=blabla
Отлично приступаем:
⁃ берем любую либу логирования
⁃ в main создаем глобальный логер
⁃ тут же докидываем префикс с именем сервиса
⁃ создаем requestMiddleware
⁃ в нем на основе глобального логера создаем новый и докидываем в него request_id
⁃ передаем в хендлер через контекст
⁃ юзаем
Вопрос:
Это единственный адекватный способ?
В правильном ли направлении я думаю, те ли это дроиды?
можете посмотреть как сделали это в Echo
если сервисы как-то связаны между собой, посмотрите в сторону distributed tracing, ну или хотя бы просто принципов того, как оно устроено
связаны, один может дернуть другой, напрямую или косвенно (через очередь или стрим). Спасибо
Есть opentrace api стандарт и его реализации. Например zipkin или jaeger
вот это самый адекватный способ из существующих, судя по моего опыту
Обсуждают сегодня