Spring MVC Controller并使用logback记录发布数据

时间:2014-01-06 16:42:27

标签: spring-mvc logging logback

从控制器记录发布数据的最佳方法是什么?我找不到使用logback或其他日志框架的任何好例子。我无法调试请求,因为我无法看到帖子数据,我不想添加拦截器。

@RequestMapping(method = RequestMethod.POST, value = "/notification")
    @ResponseBody
    public void notification(HttpServletRequest request, HttpServletResponse response) throws Exception {   

2 个答案:

答案 0 :(得分:1)

据我所知,没有内置的方法可以做到这一点。

我会编写一个自定义Filter,其中HttpServletRequestHttpServletRequestWrapper包裹起来,将请求InputStream读入BufferInputStream,并将其内容注销为收到String(或其他)方法时POST

请注意,如果内容只是二进制文件,则不希望记录该内容。

答案 1 :(得分:0)

我只是迭代参数并将它们吐出来。

String getCaseInsensitiveParameter(HttpServletRequest request, String parameter){
        Map params = request.getParameterMap();
            Iterator i = params.keySet().iterator();
            while ( i.hasNext() )
              {
                String key = (String) i.next();
                String value = ((String[]) params.get( key ))[ 0 ];
                if (parameter.equalsIgnoreCase(key)) {
                    return value;
                }
              }
        return null;
    }