CommonsRequestLoggingFilter不会在beforeRequest方法中记录params

时间:2016-08-03 12:58:41

标签: spring logging interceptor

我看到Spring有一个CommonsRequestLoggingFilter,我们可以使用它来请求记录。

但是,当我尝试使用它时,我会在输出中看到2行日志。

一个用于beforeRequest方法,另一个用于afterRequest方法。

params不会在beforeRequest中显示,而只在afterRequest方法中显示。

我不希望没有显示参数的日志行,我只想要具有参数的afterRequest日志行。

另外,我想了解为什么beforeRequest不记录参数。

有人可以帮我解决这个问题吗。

感谢,

取值

1 个答案:

答案 0 :(得分:0)

由于在AbstractRequestLoggingFilter中处理inputStream的方式似乎不包括beforeRequest消息中的请求主体。

要使过滤器根本不记录beforeRequest,您可以扩展CommonsRequestLoggingFilter,otherride beforeRequest,并让它不注销请求。

public class MyRequestLoggingFilter extends CommonsRequestLoggingFilter {

@Override
protected void beforeRequest(HttpServletRequest request, String message) {
    // do nothing
}
}