Профайлер показывает, что сервис тратит 15% процессора на отладочные логи при уровне INFO
log.debug("Состав заказа: {}", order.toDetailedString()); // сериализует весь заказ
Уровень логирования в проде — INFO, отладочные сообщения не пишутся. Тем не менее профайлер показывает, что toDetailedString() вызывается на каждом запросе. Почему и как исправить?
- Аргумент считается до вызова debug — нужен ленивый аргумент
- SLF4J игнорирует уровень, если в сообщении есть плейсхолдер {}
- Нужно заменить {} на конкатенацию строк
- Отладочные логи всегда вычисляются, это не исправить
