Комментарии 6
А как с производительностью? Сравнивалось, насколько "Нормализованный логгер" медленнее "Старого плохого логгера"?
Ведь, наверняка, старый так был сделан не просто так...
Ещё не сравнивалось. Положу в ближайшие задачи.
Benchmark Mode Cnt Score Error Units
NormalizedFeignLoggerBenchmarkTest.testFeignWithoutLogger thrpt 25 16281.625 ± 279.774 ops/s
NormalizedFeignLoggerBenchmarkTest.testNormalizedFeignLogger thrpt 25 6081.675 ± 229.912 ops/s
NormalizedFeignLoggerBenchmarkTest.testSlf4jFeignLogger thrpt 25 16593.059 ± 151.327 ops/s
А как реализовано собирание денормализованного вывода в общий кусок, если в двух словах? Я полагаю, что на запрос-ответ в оперативке создаётся объект с каким-нибудь List<String>
с последующим joining('\n')
?
Кстати, вопрос немного рядом с темой, но оффтопик: а чем какой-нибудь trace-id в MDC положить было не выход? По Ctrl+F замечательно ищется в текстовом файле. Но да, тут статья про сам факт нормализованного логгера, а не про поиск решения, как бы ответ и запрос в многороточности найти. :)
Код открыт - можете посмотреть на реализацию
в оперативке создаётся объект с каким-нибудь
List<String>
с последующимjoining('\n')
Верно.
Такой вывод связан с тем, что у команды мониторинга есть определённые проблемы - они не могут в случае ошибок обращаться к другим логам (делать какой-либо поиск). Лог запроса и ответа должен быть в одной строке.
Обнаружил неприятную особенность feign-клиента - чтобы включить логирование, нужно внести правки в 3 (трёх) местах (несмотря на мануал https://www.baeldung.com/java-feign-logging):
1. Добавить опцию запуска приложения -Dfeign.client.config.myFeignClient.loggerLevel=FULL
2. Добавить опцию запуска приложения -Dlogging.level.{FQCN}=DEBUG
3. Добавить класс MyFeignConfig
Но 3-й пункт может быть не выполним, если нет доступа к исходникам/репозиторию...
Как быть?
Нормализуем логи OpenFeign