Logging

Базовый Spring
≈ 1 мин чтения

Логи вместо System.out.println

Работающее приложение должно оставлять понятный диагностический след: что запустилось, какая операция выполнялась и где произошла ошибка. Spring Boot подготавливает систему логирования, поэтому приложению остаётся писать сообщения через стандартный logging API, а не разбрасывать по коду System.out.println().

class PaymentService {
    private static final Logger log = LoggerFactory.getLogger(PaymentService.class);

    void pay(long orderId) {
        log.info("Starting payment for order {}", orderId);
    }
}

Плейсхолдер {} позволяет передавать значение отдельно от шаблона сообщения. Такой вызов удобнее конкатенации строк и нормально работает с системой уровней логирования.

Уровни помогают отделять важное от подробностей

Для сообщений используются уровни вроде DEBUG, INFO, WARN и ERROR. Нужную детализацию можно менять конфигурацией без переписывания Java-кода.

logging.level.com.example.payment=DEBUG
Не логируй секреты и персональные данные без необходимости. Логи часто собираются централизованно и хранятся дольше обычного запроса, поэтому случайно записанный токен или пароль становится отдельной проблемой безопасности.