Логирование Spring

Тема дорожной карты · Spring Boot

Логирование в Spring Boot построено поверх SLF4J (Simple Logging Facade for Java) с Logback в качестве реализации по умолчанию, обеспечивая структурированный, уровневый вывод логов без какой-либо ручной настройки. Spring Boot авто-конфигурирует логирование через свойства spring.application.name, logging.level.* и logging.file.name в application.properties или application.yml, позволяя разработчикам мгновенно настраивать детализацию на уровне пакета. Эндпоинт Actuator /actuator/loggers позволяет изменять уровни логирования во время работы в продакшне без перезапуска приложения, что бесценно для диагностики проблем в Docker или Kubernetes. Для продакшн-агрегации логов Logback можно расширить файлом logback-spring.xml для вывода JSON и отправки логов в ELK или Loki, а MDC (Mapped Diagnostic Context) обеспечивает поля трассировки на уровне запроса, совместимые с Micrometer и инструментами распределённой трассировки.

Как это работает

Логирование Spring: Spring Boot Actuator экспонирует operational endpoints (/actuator/health, /info, /metrics, /prometheus, /env, /loggers). Health checks (liveness + readiness probes для K8s). Metrics через Micrometer (vendor-neutral metrics facade) → Prometheus, Datadog и т.п. Logging через Logback (дефолт) с JSON output для production (Logstash encoder); structured logging делает log aggregation реально полезным. Сочетайте с Micrometer Tracing для traces, OpenTelemetry SDK для полного o11y-сигнала.

Когда применять

Всегда включайте Actuator + Prometheus scraping + structured JSON logs в prod. Раздельные liveness/readiness probes — liveness рестартует залипший pod, readiness роутит трафик только когда ready. Тэгируйте метрики консистентно (service, version, env) — спасает от dashboard хаоса. Ограничивайте exposed-наружу endpoints; защищайте их.

Типичные ошибки

Ловушки Логирование Spring: публично выставленный /actuator/env (показывает env vars включая секреты); только liveness-probe (трафик роутится в not-ready pods); plain-text logs в prod (нефильтрабельно на масштабе); нет конвенции имён метрик (каждая команда изобретает свою).

Связанные понятия

Полезные ресурсы