@Override protected void logRequest(String configKey, feign.Logger.Level logLevel, Request request) { HttpData reqData = createHttpData(request); String requestId = requestIdProvider.getRequestId(); requestDataProvider.store(requestId, reqData); requestResponseLogger.logObfuscatedRequest(reqData, TAG); super.logRequest(configKey, logLevel, request); }
@Override protected Response logAndRebufferResponse( String configKey, feign.Logger.Level logLevel, Response response, long elapsedTime) throws IOException { String requestId = requestIdProvider.getRequestId(); HttpData reqData = requestDataProvider.retrieve(requestId); if (requestTraceable(reqData) && isNotSkipped(reqData)) { byte[] bodyData = Util.toByteArray(response.body().asInputStream()); String content = new String(bodyData, StandardCharsets.UTF_8.name()); HttpData resData = new HttpData(extractHeaders(response), extractStatus(response), content); Response rebufferedResponse = Response.create(response.status(), response.reason(), response.headers(), bodyData); requestResponseLogger.logObfuscatedResponse(reqData, resData, TAG); requestDataProvider.remove(requestId); return super.logAndRebufferResponse(configKey, logLevel, rebufferedResponse, elapsedTime); } else { log.debug("Cannot obfuscate response, matching request data lost"); return super.logAndRebufferResponse(configKey, logLevel, response, elapsedTime); } }