Здравствуйте, я пытаюсь выяснить общий способ протоколирования HTTP-запросов в моем приложении, до сих пор не повезло, вот как я обрабатываю ведение журнала прямо сейчас i.e:
@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;
}
Итак, что я делаю прямо сейчас для разных контроллеров/методов, это копировать все из начала внутри метода до тех пор, пока логика обработки не будет отличаться от метода к методу, а затем скопирует все, что находится ниже, как показано в приведенном выше шаблоне.
Это довольно грязно, и есть много повторений кода (что мне не нравится). Но мне нужно все регистрировать.
Есть ли у кого-нибудь больше опыта в таких журналах, может ли кто-нибудь пролить свет на это?