middle
Как настроить логирование в Spring Boot?
Spring Boot использует Logback по умолчанию и предоставляет два уровня конфигурации: простой через application.yml и расширенный через logback-spring.xml.
Простая настройка через application.yml
Пример
logging:
level:
root: INFO
com.example: DEBUG
org.hibernate.SQL: DEBUG
org.hibernate.type.descriptor.sql.BasicBinder: TRACE # параметры SQL
file:
name: logs/application.log
logback:
rollingpolicy:
max-file-size: 100MB
max-history: 30
total-size-cap: 3GB
pattern:
console: "%d{HH:mm:ss.SSS} %highlight(%-5level) [%thread] %cyan(%logger{36}) - %msg%n"
file: "%d{ISO8601} %-5level [%thread] %logger{36} - %msg%n"
Расширенная настройка через logback-spring.xml
Файл logback-spring.xml (не logback.xml) поддерживает Spring-профили и Spring-свойства:
Пример
<configuration>
<springProfile name="dev">
<root level="DEBUG">
<appender-ref ref="CONSOLE"/>
</root>
</springProfile>
<springProfile name="prod">
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</springProfile>
</configuration>
Изменение уровней на лету через Actuator
Пример
# Посмотреть текущий уровень
curl http://localhost:8080/actuator/loggers/com.example
# Изменить уровень без перезапуска
curl -X POST http://localhost:8080/actuator/loggers/com.example \
-H 'Content-Type: application/json' \
-d '{"configuredLevel": "DEBUG"}'
Какой способ конфигурации выбрать
| Способ | Когда использовать |
|---|---|
application.yml |
Простые сценарии: уровни, файл, паттерн |
logback-spring.xml |
Сложные сценарии: фильтры, несколько appenders, условная конфигурация |
| Actuator | Динамическая диагностика в runtime без перезапуска |
Частые ошибки
logback.xmlвместоlogback-spring.xml— теряется поддержка<springProfile>и<springProperty>- Включить
org.hibernate.SQL=DEBUGв production — огромный объём логов; только для временной диагностики - Не настроить Actuator security — endpoint
/actuator/loggersдолжен быть защищён
Как используется в 2026
application.yml+logback-spring.xml— стандартная комбинация- В Kubernetes: логирование в stdout (ConsoleAppender), сбор через Promtail/Fluentd
- Actuator + Kubernetes probes — мониторинг и динамическая диагностика
На собеседовании: ключевой момент — знание разницы между
logback.xmlиlogback-spring.xml. Второй поддерживает Spring-профили. Также упомяните Actuator для изменения уровней на лету — это показывает production-опыт.