Spring Boot - Configure Log Level in runtime using actuator endpoint
As of Spring Boot 1.5 a new loggers
actuator endpoint allows viewing and changing application logging levels in runtime.
- Add
spring-boot-actuator
to your project
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
- Disable security for
loggers
or for all endpoints
Set either management.security.enabled
to false
or endpoints.loggers.sensitive
to false
to disable security. Note that the latter changes only loggers
endpoint.
- Get all loggers details
Execute /loggers
endpoint in the browser or with curl
. You will get a detailed view of the loggers configuration, e.g (fragment):
{
"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"
}
}
}
- Get selected logger details
Use the following endpoint to get details of a selected logger:
/logger/{logger}
Examples:
λ curl -i http://localhost:8080/loggers/ROOT
{
"configuredLevel": null,
"effectiveLevel": "TRACE"
}
λ curl -i http://localhost:8080/loggers/pl.codeleak.demos
{
"configuredLevel": null,
"effectiveLevel": "TRACE"
}
- Update selected logger level in runtime
Execute a POST
request:
curl -i -X POST -H 'Content-Type: application/json' -d '{"configuredLevel": "TRACE"}' http://localhost:8080/loggers/ROOT
Source code
The example configuration can be found in https://github.com/kolorobot/spring-boot-thymeleaf repository.