Статьи

Spring Boot — настройка лог-уровня во время выполнения с использованием конечной точки привода

Начиная с Spring Boot 1.5, новая конечная точка привода loggers позволяет просматривать и изменять уровни журналирования приложений во время выполнения.

  • Добавьте spring-boot-actuator в ваш проект
1
2
3
4
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  • Отключить защиту для loggers или для всех конечных точек

Задайте для параметра management.security.enabled значение false или для endpoints.loggers.sensitive значение false чтобы отключить защиту. Обратите внимание, что последний изменяет только конечную точку loggers .

  • Получить все данные регистраторов

Выполнение /loggers конечной точки в браузере или с помощью curl . Вы получите подробное представление о конфигурации регистраторов, например (фрагмент):

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
  "levels": [
    "OFF",
    "ERROR",
    "WARN",
    "INFO",
    "DEBUG",
    "TRACE"
  ],
  "loggers": {
    "ROOT": {
      "configuredLevel": "TRACE",
      "effectiveLevel": "TRACE"
    },
    "org": {
      "configuredLevel": null,
      "effectiveLevel": "TRACE"
    },
    "pl.codeleak.demos.sbt": {
      "configuredLevel": null,
      "effectiveLevel": "TRACE"
    },
    "pl.codeleak.demos.sbt.Application": {
      "configuredLevel": null,
      "effectiveLevel": "TRACE"
    }
  }
}
  • Получить данные выбранного регистратора

Используйте следующую конечную точку для получения сведений о выбранном регистраторе:

1
/logger/{logger}

Примеры:

01
02
03
04
05
06
07
08
09
10
11
12
13
λ curl -i http://localhost:8080/loggers/ROOT
 
{
"configuredLevel": null,
"effectiveLevel": "TRACE"
}
 
λ curl -i http://localhost:8080/loggers/pl.codeleak.demos
 
{
"configuredLevel": null,
"effectiveLevel": "TRACE"
}
  1. Обновить выбранный уровень журнала во время выполнения

Выполнить запрос POST :

1
curl -i -X POST -H 'Content-Type: application/json' -d '{"configuredLevel": "TRACE"}' http://localhost:8080/loggers/ROOT

Исходный код

Пример конфигурации можно найти в https://github.com/kolorobot/spring-boot-thymeleaf репозиторий.