我正在为我的project使用Spring boot Actuator API并具有运行状况检查端点,并通过以下方式启用了它:

management.endpoints.web.base-path=/
management.endpoints.web.path-mapping.health=healthcheck

提及的here

现在,当上述/healthcheck的状态失败时,我想在我的应用程序日志文件中启用日志,并从此端点打印整个响应。

实现此目的的正确方法是什么?

最佳答案

最好的方法是使用 @EndpointWebExtension 扩展执行器端点。您可以执行以下操作;

@Component
@EndpointWebExtension(endpoint = HealthEndpoint.class)
public class HealthEndpointWebExtension {

    private HealthEndpoint healthEndpoint;
    private HealthStatusHttpMapper statusHttpMapper;

    // Constructor

    @ReadOperation
    public WebEndpointResponse<Health> health() {
        Health health = this.healthEndpoint.health();
        Integer status = this.statusHttpMapper.mapStatus(health.getStatus());
        // log here depending on health status.
        return new WebEndpointResponse<>(health, status);
    }
}

有关执行器端点扩展here的更多信息,请参见 4.8。扩展现有端点

09-08 07:07