Gymterview
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-опыт.