Какую информацию обычно содержат логи запуска Java-приложения (Spring Boot)?

«Какую информацию обычно содержат логи запуска Java-приложения (Spring Boot)?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Логи запуска типичного Spring Boot приложения содержат несколько ключевых блоков информации:

// 1. ИНФОРМАЦИЯ О ПРИЛОЖЕНИИ И СРЕДЕ
  .   ____          _            __ _ _
 /\ / ___'_ __ _ _(_)_ __  __ _    
( ( )___ | '_ | '_| | '_ / _` |    
 \/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |___, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.1.5)

// 2. ПРОФИЛЬ И УРОВЕНЬ ЛОГИРОВАНИЯ
2023-11-15T10:30:00.001Z  INFO 12345 --- [           main] c.e.m.MyApplication                      : Starting MyApplication using Java 17.0.8 on hostname with PID 12345
2023-11-15T10:30:00.002Z  INFO 12345 --- [           main] c.e.m.MyApplication                      : No active profile set, using default profile: "default"

// 3. АВТОКОНФИГУРАЦИЯ И ПОДКЛЮЧЕНИЕ КОМПОНЕНТОВ
2023-11-15T10:30:00.500Z  INFO 12345 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2023-11-15T10:30:01.200Z  INFO 12345 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2023-11-15T10:30:01.250Z  INFO 12345 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]

// 4. ПОДКЛЮЧЕНИЕ К ВНЕШНИМ СИСТЕМАМ (БД, Kafka, Redis)
2023-11-15T10:30:02.100Z  INFO 12345 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2023-11-15T10:30:02.350Z  INFO 12345 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2023-11-15T10:30:02.400Z  INFO 12345 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]

// 5. МАППИНГИ И КОНЕЧНЫЕ ТОЧКИ
2023-11-15T10:30:03.100Z  INFO 12345 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 1 endpoint beneath base path '/actuator'
2023-11-15T10:30:03.500Z  INFO 12345 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 8080 (http) with context path ''

// 6. ФИНАЛЬНОЕ СООБЩЕНИЕ О УСПЕШНОМ СТАРТЕ
2023-11-15T10:30:03.501Z  INFO 12345 --- [           main] c.e.m.MyApplication                      : Started MyApplication in 3.5 seconds (process running for 4.0)

Краткое содержание ключевых пунктов:

  1. Заголовок и версии: Название и версия Spring Boot, Java.
  2. Профиль: Активный Spring-профиль (default, dev, prod).
  3. Конфигурация бинов: Загрузка @Configuration классов, Spring Data репозиториев.
  4. Встроенный сервер: Тип (Tomcat/Jetty/Netty) и порт.
  5. Подключения: Успешное или неуспешное подключение к БД, брокерам сообщений, кэшам.
  6. Мониторинг: Активация эндпоинтов Actuator (например, /health, /metrics).
  7. Время запуска: Общее время, затраченное на инициализацию приложения.

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