kimi42345
2020-03-22 d0451fdd55195901e65e5c4b3b64028a86f9e669
src/main/java/com/highdatas/mdm/util/HttpTraceLogFilter.java
@@ -1,6 +1,7 @@
package com.highdatas.mdm.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
@@ -31,7 +32,7 @@
@Slf4j
public class HttpTraceLogFilter extends OncePerRequestFilter implements Ordered {
    private static final String NEED_TRACE_PATH_PREFIX = "/api";
    private static final String UNNEED_TRACE_PATH_PREFIX = "/file";
    private static final String IGNORE_CONTENT_TYPE = "multipart/form-data";
@@ -61,9 +62,9 @@
            status = response.getStatus();
        } finally {
            String path = request.getRequestURI();
            boolean isFilterPath = path.startsWith(NEED_TRACE_PATH_PREFIX);
            isFilterPath = true;
            if (isFilterPath) {
            boolean isFilterPath = path.startsWith(UNNEED_TRACE_PATH_PREFIX);
            isFilterPath  = true;
            if (!isFilterPath) {
                String requestBody = IOUtils.toString(request.getInputStream(), StandardCharsets.UTF_8.name());
                log.info(requestBody);
                //1. 记录日志
@@ -75,8 +76,20 @@
                traceLog.setTime(LocalDateTime.now().toString());
                traceLog.setParameterMap(JSON.toJSONString(request.getParameterMap()));
                traceLog.setStatus(status);
                traceLog.setUserIp( request.getRemoteAddr());
                traceLog.setRequestBody(getRequestBody(request));
                traceLog.setResponseBody(getResponseBody(response));
                String responseBody = getResponseBody(response);
                try{
                    JSONObject jsonObject = JSONObject.parseObject(responseBody);
                    if (jsonObject != null){
                        traceLog.setResponseStatus(jsonObject.getString("success"));
                    }
                }
                catch (Exception e){
                    e.printStackTrace();
                }
//                traceLog.setResponseBody(responseBody);
                log.info("Http trace log: {}", JSON.toJSONString(traceLog));
            }
            updateResponse(response);
@@ -136,6 +149,6 @@
        private String userId;
        private String userIp;
        private String urlId;
        private String responseBody;
        private String responseStatus;
    }
}