Регистрация всех запросов и ответов с помощью Spring Boot Actuator - PullRequest
0 голосов
/ 22 октября 2018

Я использую сервисы Spring Boot и REST, используя @RestController.Я хочу регистрировать все запросы и ответы с полезной нагрузкой.Как я могу сделать это, используя Spring Boot Actuator?Когда я использую:

    @Bean
    public ServletContextRequestLoggingFilter requestLoggingFilter() {
        ServletContextRequestLoggingFilter loggingFilter = new ServletContextRequestLoggingFilter();
        loggingFilter.setIncludeClientInfo(true);
        loggingFilter.setIncludeQueryString(true);
        loggingFilter.setIncludePayload(true);
        loggingFilter.setIncludeHeaders(true);
        loggingFilter.setMaxPayloadLength(10000);
        loggingFilter.setAfterMessagePrefix("REQUEST DATA : ");
        return loggingFilter;
    }

, я получаю только запросы, но не ответы.

1 Ответ

0 голосов
/ 22 октября 2018

Вы можете использовать addInterceptors метод WebMvcConfigurer

@Configuration
@EnableWebMvc
class WebMvcConfiguration : WebMvcConfigurer {

  override fun addInterceptors(registry: InterceptorRegistry) {
      registry.addInterceptor(LoggingInterceptor())
  }
}

И здесь является хорошим примером для перехватчика.

ОБНОВЛЕНО

Вы можете переопределить Spring LoggingFilter

public class CustomLoggingFilter extends LoggingFilter
{
     @Override
     protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException
     {
          super.doFilterInternal(request, response, filterChain);
     }
}

@Configuration
public Config {
    @Bean
    public CustomLoggingFilter loggingFilter()
    {
        return new CustomLoggingFilter();
    }
}

Не уверен насчет вашего формата, но вы можете попробовать использовать:

logging:
  level: 
    org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor: debug //response
    org.apache.coyote.http11.Http11InputBuffer: debug //request
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...