Pretty print JSON output of Spring Boot Actuator endpoints

前端 未结 14 1006
终归单人心
终归单人心 2020-12-24 12:30

Spring Boot Actuator provides several endpoints to monitor an application as:

/metrics
/b         


        
14条回答
  •  不知归路
    2020-12-24 13:15

    Unfortunately, the application property

    spring.jackson.serialization.INDENT_OUTPUT

    did not work for me (spring boot versions 1.2.6 to 1.4.0.RELEASE). Instead, in my extension of WebMvcConfigurerAdapter, I've overridden configureMessageConverters() and added my own Jackson2ObjectMapperBuilder:

    @Configuration
    @EnableWebMvc
    public class WebMvcConfig extends WebMvcConfigurerAdapter {
       ...
        private MappingJackson2HttpMessageConverter jacksonMessageConverter() {
            Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder()
                    .featuresToDisable(SerializationFeature.FAIL_ON_EMPTY_BEANS,
                            SerializationFeature.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS)
                    .featuresToEnable(SerializationFeature.INDENT_OUTPUT).modulesToInstall(hibernate4Module());
            // can use this instead of featuresToEnable(...)
            builder.indentOutput(true);
            return new MappingJackson2HttpMessageConverter(builder.build());
        }
    
    
        @Override
        public void configureMessageConverters(List> converters) {
            converters.add(jacksonMessageConverter());
            super.configureMessageConverters(converters);
        }
    
       ...
    
    }
    

    That seem to do the trick for me on Spring boot 1.4.0.RELEASE and my actuator output is now pretty printed (along with every other json output)

提交回复
热议问题