【发布时间】:2016-08-19 00:01:16
【问题描述】:
RequestLogHandler requestLogHandler = new RequestLogHandler();
Slf4jRequestLog requestLog = new CustomSlf4jRequestLog();
requestLogHandler.setRequestLog(requestLog);
Slf4jRequestLog 仅记录请求方法、url 和日期,以及写入的响应状态代码和字节。 我绝对想为我的 PUT/POST 请求记录正文。 我从 Slf4jRequestLog 派生了 CustomSlf4jRequestLog 并尝试了:
public void log(Request request, Response response) {
StringBuilder sb = new StringBuilder("RequestBody: ");
try {
LOG.info("BODY SIZE: " + request.getContentLength());
BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
sb.append(line);
}
LOG.info(sb.toString());
很遗憾没有打印出正文,因为它已经被处理程序处理了?
是否可以在这里获取请求正文?
(我真的很关心正文,因为我有 JsonProvider 并且我想在 Json 无法解析数据时查看整个请求体)或者当我的应用程序失败时,我想看看是什么导致了这种情况,而无需为每个输入请求添加日志记录。
【问题讨论】: