在呼叫/健康时添加日志

时间:2017-08-24 12:12:10

标签: spring-boot spring-boot-actuator health-monitoring

我开发了一个应用程序spring-boot我使用了执行器来提供健康指示器。问题是我必须开发自定义运行状况,当我调用/ health时,我需要记录该端点的返回。

我创建了一个端点/ health-bis,它调用/ health并记录它的响应。但问题是当服务不可用/健康返回http代码503

你有什么想法吗?

最好的问候

2 个答案:

答案 0 :(得分:0)

您可以创建过滤器并注册它。

RequestDumperFilter会将请求/响应记录到已过滤的端点。它非常详细,所以也许你想要创建自己的过滤器,但这是一个良好的开端。

@Bean
public FilterRegistrationBean requestDumperFilter()
{
    FilterRegistrationBean registration = new FilterRegistrationBean();
    Filter requestDumperFilter = new RequestDumperFilter();
    registration.setFilter(requestDumperFilter);
    registration.addUrlPatterns("/*");
    return registration;
}

答案 1 :(得分:0)

我有相同的任务,并通过覆盖原始的org.springframework.boot.actuate.health.HealthEndpoint解决了它。我只是简单地创建了自定义的一个:

@Slf4j
@Component
@Endpoint(id = "health")
public class CustomHealthEndpoint extends HealthEndpoint {

    public CustomHealthEndpoint(HealthAggregator healthAggregator,
                                HealthIndicatorRegistry registry) {
        super(new CompositeHealthIndicator(healthAggregator, registry));
    }

    @Override
    @ReadOperation
    public Health health() {
        Health health = super.health();
        log.debug("Health status details: {}", health);
        return health;
    }
}

现在,每次我致电/ health时,我都会在日志中看到完整的状态日志消息。

相关问题