Эх сурвалжийг харах

feat: syslog支持post参数保存(开发自发优化)

lixuesong 1 жил өмнө
parent
commit
e6e3a682c4

+ 2 - 1
hnqz-common/hnqz-common-log/src/main/java/com/qunzhixinxi/hnqz/common/log/aspect/SysLogAspect.java

@@ -47,9 +47,10 @@ public class SysLogAspect {
 	public Object around(ProceedingJoinPoint point, SysLog sysLog) {
 		String strClassName = point.getTarget().getClass().getName();
 		String strMethodName = point.getSignature().getName();
+		Object[] args = point.getArgs();
 		log.debug("[类名]:{},[方法]:{}", strClassName, strMethodName);
 
-		com.qunzhixinxi.hnqz.admin.api.entity.SysLog logVo = SysLogUtils.getSysLog();
+		com.qunzhixinxi.hnqz.admin.api.entity.SysLog logVo = SysLogUtils.getSysLog(args);
 		logVo.setTitle(sysLog.value());
 		// 发送异步日志事件
 		Long startTime = System.currentTimeMillis();

+ 21 - 0
hnqz-common/hnqz-common-log/src/main/java/com/qunzhixinxi/hnqz/common/log/util/SysLogUtils.java

@@ -22,9 +22,11 @@ package com.qunzhixinxi.hnqz.common.log.util;
 import cn.hutool.core.util.URLUtil;
 import cn.hutool.extra.servlet.ServletUtil;
 import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSONUtil;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysLog;
 import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
 import lombok.experimental.UtilityClass;
+import org.springframework.http.HttpMethod;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.security.oauth2.provider.OAuth2Authentication;
@@ -57,6 +59,25 @@ public class SysLogUtils {
 		return sysLog;
 	}
 
+	public SysLog getSysLog(Object[] args) {
+		HttpServletRequest request = ((ServletRequestAttributes) Objects
+				.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+		SysLog sysLog = new SysLog();
+		sysLog.setCreateBy(Objects.requireNonNull(getUsername()));
+		sysLog.setType(CommonConstants.STATUS_NORMAL);
+		sysLog.setRemoteAddr(ServletUtil.getClientIP(request));
+		sysLog.setRequestUri(URLUtil.getPath(request.getRequestURI()));
+		sysLog.setMethod(request.getMethod());
+		sysLog.setUserAgent(request.getHeader("user-agent"));
+		if (HttpMethod.GET.name().equals(request.getMethod())) {
+			sysLog.setParams(HttpUtil.toParams(request.getParameterMap()));
+		} else {
+			sysLog.setParams(JSONUtil.toJsonStr(args));
+		}
+		sysLog.setServiceId(getClientId());
+		return sysLog;
+	}
+
 	public SysLog getSysLog(HttpServletRequest request, String username) {
 		SysLog sysLog = new SysLog();
 		sysLog.setCreateBy(username);