如何使用Spring MVC正确记录HTTP请求
如何使用Spring MVC正确记录HTTP请求
大家好,我一直在尝试找出一种通用的方法来记录我的应用程序中的HTTP请求,但到目前为止还没有成功。以下是我当前的日志处理方式:
@RequestMapping(value="register", method = RequestMethod.POST)
@ResponseBody
public String register(@RequestParam(value="param1",required=false) String param1, @RequestParam("param2") String param2, @RequestParam("param3") String param3, HttpServletRequest request){
long start = System.currentTimeMillis();
logger.info("!--REQUEST START--!");
logger.info("Request URL: " + request.getRequestURL().toString());
List
logger.info("Parameter number: " + requestParameterNames.size());
for (String parameterName : requestParameterNames){
logger.info("Parameter name: " + parameterName + " - Parameter value: " + request.getParameter(parameterName));
}
//一些处理逻辑,调用不同参数的各种服务/方法,响应始终为字符串(Json)
String response = service.callSomeServiceMethods(param1,param2,param3);
logger.info("Response is: " + response);
long end = System.currentTimeMillis();
logger.info("Request completed in: " + (end-start) + "ms");
logger.info("!--REQUEST END--!");
return response;
}
目前我对于不同的控制器/方法所做的是复制方法内部开始部分直到处理逻辑(每个方法都不同),然后复制下面的部分,如上面的模板所示。这有点混乱,而且有很多重复的代码(我不喜欢)。但我需要记录所有的东西。有没有人对这种类型的日志记录有更多的经验,能给我一些指导?