如何使用Spring MVC正确记录http请求
2022-09-01 02:24:30
您好,我一直在尝试找出在我的应用程序中记录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<String> requestParameterNames = Collections.list((Enumeration<String>)request.getParameterNames());
logger.info("Parameter number: " + requestParameterNames.size());
for (String parameterName : requestParameterNames){
logger.info("Parameter name: " + parameterName + " - Parameter value: " + request.getParameter(parameterName));
}
//Some processing logic, call to the various services/methods with different parameters, response is always String(Json)
String response = service.callSomeServiceMethods(param1,param2,param3);
logger.info("Response is: " + response);
long end = System.currentTimeMillis();
logger.info("Requested completed in: " + (end-start) + "ms");
logger.info("!--REQUEST END--!");
return response;
}
因此,我现在为不同的控制器/方法所做的是从方法内部开始复制所有内容,直到处理逻辑因方法而异,然后从下面复制所有内容,如上面的模板所示。
它有点混乱,并且有很多代码重复(我不喜欢)。但我需要记录所有内容。
有没有人对这种日志记录有更多经验,任何人都可以对此进行一些阐明吗?