在春季靴子2什么是最有效的登录身体的方式?

问题描述 投票:0回答:1

我曾经使用这个在JAX-RS的过滤器中记录我的请求

@Provider
public class RequestLoggingFilter implements ContainerRequestFilter {
    @Context
    private HttpServletRequest servletRequest;

    @Override
    public void filter(ContainerRequestContext requestContext) throws IOException {

        BufferedInputStream stream = new 
        BufferedInputStream(requestContext.getEntityStream());
        String payload = IOUtils.toString(stream, "UTF-8");
        requestContext.setEntityStream(IOUtils.toInputStream(payload, "UTF-8"));
    }

}

我正在尝试在春季启动2中做类似的事情,我尝试使用过滤器,拦截器和执行器。我一读到它就立刻失去了身体。在弹簧启动2中,执行器的跟踪不支持主体的记录,那么有没有其他方法来记录请求和响应主体而不会丢失它?

java spring-boot logging jax-rs spring-boot-actuator
1个回答
0
投票

您可能会在那里找到所需的一切:http://www.baeldung.com/spring-http-logging

Spring提供了一个内置的有效负载日志解决方案。我们可以通过使用配置插入Spring应用程序来使用现成的过滤器。

AbstractRequestLoggingFilter是一个提供日志记录基本功能的过滤器。子类应覆盖beforeRequest()和afterRequest()方法,以执行围绕请求的实际日志记录。

Spring框架提供了三个具体的实现类,可用于记录传入的请求。这三个类是:

CommonsRequestLoggingFilter Log4jNestedDiagnosticContextFilter(不建议使用)ServletContextRequestLoggingFilter现在,让我们转到CommonsRequestLoggingFilter并将其配置为捕获传入的日志记录请求。

© www.soinside.com 2019 - 2024. All rights reserved.