如何使用Spring MVC正确记录HTTP请求

11 浏览
0 Comments

如何使用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 requestParameterNames = Collections.list((Enumeration)request.getParameterNames());

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;

}

目前我对于不同的控制器/方法所做的是复制方法内部开始部分直到处理逻辑(每个方法都不同),然后复制下面的部分,如上面的模板所示。这有点混乱,而且有很多重复的代码(我不喜欢)。但我需要记录所有的东西。有没有人对这种类型的日志记录有更多的经验,能给我一些指导?

0