|
@@ -1,5 +1,6 @@
|
|
|
package cn.iocoder.yudao.framework.apilog.core.filter;
|
|
|
|
|
|
+import cn.hutool.core.date.LocalDateTimeUtil;
|
|
|
import cn.hutool.core.exceptions.ExceptionUtil;
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.extra.servlet.ServletUtil;
|
|
@@ -7,7 +8,6 @@ import cn.iocoder.yudao.framework.apilog.core.service.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.service.ApiAccessLogFrameworkService;
|
|
|
import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
-import cn.iocoder.yudao.framework.common.util.date.DateUtils;
|
|
|
import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
|
|
|
import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
|
|
|
import cn.iocoder.yudao.framework.web.config.WebProperties;
|
|
@@ -20,7 +20,8 @@ import javax.servlet.ServletException;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.IOException;
|
|
|
-import java.util.Date;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.temporal.ChronoUnit;
|
|
|
import java.util.Map;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString;
|
|
@@ -47,7 +48,7 @@ public class ApiAccessLogFilter extends ApiRequestFilter {
|
|
|
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
|
|
|
throws ServletException, IOException {
|
|
|
// 获得开始时间
|
|
|
- Date beginTim = new Date();
|
|
|
+ LocalDateTime beginTime = LocalDateTime.now();
|
|
|
// 提前获得参数,避免 XssFilter 过滤处理
|
|
|
Map<String, String> queryString = ServletUtil.getParamMap(request);
|
|
|
String requestBody = ServletUtils.isJsonRequest(request) ? ServletUtil.getBody(request) : null;
|
|
@@ -56,15 +57,15 @@ public class ApiAccessLogFilter extends ApiRequestFilter {
|
|
|
// 继续过滤器
|
|
|
filterChain.doFilter(request, response);
|
|
|
// 正常执行,记录日志
|
|
|
- createApiAccessLog(request, beginTim, queryString, requestBody, null);
|
|
|
+ createApiAccessLog(request, beginTime, queryString, requestBody, null);
|
|
|
} catch (Exception ex) {
|
|
|
// 异常执行,记录日志
|
|
|
- createApiAccessLog(request, beginTim, queryString, requestBody, ex);
|
|
|
+ createApiAccessLog(request, beginTime, queryString, requestBody, ex);
|
|
|
throw ex;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void createApiAccessLog(HttpServletRequest request, Date beginTime,
|
|
|
+ private void createApiAccessLog(HttpServletRequest request, LocalDateTime beginTime,
|
|
|
Map<String, String> queryString, String requestBody, Exception ex) {
|
|
|
ApiAccessLog accessLog = new ApiAccessLog();
|
|
|
try {
|
|
@@ -75,7 +76,7 @@ public class ApiAccessLogFilter extends ApiRequestFilter {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void buildApiAccessLogDTO(ApiAccessLog accessLog, HttpServletRequest request, Date beginTime,
|
|
|
+ private void buildApiAccessLogDTO(ApiAccessLog accessLog, HttpServletRequest request, LocalDateTime beginTime,
|
|
|
Map<String, String> queryString, String requestBody, Exception ex) {
|
|
|
// 处理用户信息
|
|
|
accessLog.setUserId(WebFrameworkUtils.getLoginUserId(request));
|
|
@@ -103,8 +104,8 @@ public class ApiAccessLogFilter extends ApiRequestFilter {
|
|
|
accessLog.setUserIp(ServletUtil.getClientIP(request));
|
|
|
// 持续时间
|
|
|
accessLog.setBeginTime(beginTime);
|
|
|
- accessLog.setEndTime(new Date());
|
|
|
- accessLog.setDuration((int) DateUtils.diff(accessLog.getEndTime(), accessLog.getBeginTime()));
|
|
|
+ accessLog.setEndTime(LocalDateTime.now());
|
|
|
+ accessLog.setDuration((int) LocalDateTimeUtil.between(accessLog.getBeginTime(), accessLog.getEndTime(), ChronoUnit.SECONDS));
|
|
|
}
|
|
|
|
|
|
}
|