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無法解析數據時,我希望看到整個請求)或者當我的應用程序失敗時,我想查看是什麼原因造成的,無需爲每個輸入請求添加日誌記錄。