// 获取请求参数进行打印 ================
Signature signature1 = joinPoint.getSignature();
JSONObject signatureJson = JSON.parseObject(JSON.toJSONString(signature1));
JSONArray parameterNames = signatureJson.getJSONArray("parameterNames");
List<Object> argList = new ArrayList<>();
for (Object arg : joinPoint.getArgs()) {
// request/response无法使用toJSON
if (arg instanceof HttpServletRequest) {
argList.add("request");
} else if (arg instanceof HttpServletResponse) {
argList.add("response");
} else {
argList.add(JSON.toJSON(arg));
}
}
operlog.setOperRequParam(argList.toString());
最后把数组的值塞进去、有些报错可能是参数太多,超长了。
先判断是否为空,我的数据库设计的是600,但有时候会超过一点,不知道为啥。
判断一下是否超过512,如果超就去裁剪,不判断直接去裁剪,可能会裁剪不到512会报错。
String body = operationLog.getOperRequParam();
if (body != null){
if (operationLog.getOperRequParam().length() > 512){
operationLog.setOperRequParam(body.substring(0,512));
}
}