【问题标题】:CommonsRequestLoggingFilter does not log params in beforeRequest methodCommonsRequestLoggingFilter 不在 beforeRequest 方法中记录参数
【发布时间】:2016-08-03 12:58:40
【问题描述】:

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

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

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

参数不显示在 beforeRequest 中,而仅显示在 afterRequest 方法中。

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

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

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

谢谢,

s

【问题讨论】:

    标签: spring logging interceptor


    【解决方案1】:

    由于在 AbstractRequestLoggingFilter 中处理 inputStream 的方式,它似乎没有在 beforeRequest 消息中包含请求正文。

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

    public class MyRequestLoggingFilter extends CommonsRequestLoggingFilter {
    
    @Override
    protected void beforeRequest(HttpServletRequest request, String message) {
        // do nothing
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-19
      • 2020-01-20
      • 1970-01-01
      • 1970-01-01
      • 2013-10-11
      • 2013-03-02
      相关资源
      最近更新 更多