Повторное добавление атрибутов в регистратор
Closed this issue · 1 comments
Обработчики используют конструкцию:
url-shortener/internal/http-server/handlers/redirect/redirect.go
Lines 28 to 31 in b8c3104
Несмотря на то, что log является локальной для функции конструктора обработчика, она внешняя по отношению к самому обработчику и сохраняет состояние между вызовами обработчика. В результате атрибуты будут повторно добавляться в регистратор при каждом вызове обработчика.
Визуально проявление проблемы можно наблюдать, если для режима local вместо PrettySlog использовать стандартный TextHandler. При каждом обращении к серверу размер строк журнала будут расти из-за повтора атрибутов.
Для решения проблемы достаточно сделать переменную log локальной, используя :=
log := log.With(...)
Смержил PR, спасибо большое за помощь