日志获取IP对应的地区加缓存,排除GET请求
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
package com.czg.log.aspect;
|
||||
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.exceptions.ExceptionUtil;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.servlet.JakartaServletUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
@@ -13,6 +15,7 @@ import com.czg.log.enums.LogTypeEnum;
|
||||
import com.czg.log.enums.OperationStatusEnum;
|
||||
import com.czg.log.producer.LogProducer;
|
||||
import com.czg.sa.StpKit;
|
||||
import com.czg.service.RedisService;
|
||||
import com.czg.utils.AddressUtil;
|
||||
import com.czg.utils.HttpContextUtil;
|
||||
import com.mybatisflex.core.keygen.impl.SnowFlakeIDKeyGenerator;
|
||||
@@ -44,6 +47,9 @@ public class OperationLogAspect {
|
||||
@Resource
|
||||
private LogProducer logProducer;
|
||||
|
||||
@Resource
|
||||
private RedisService redisService;
|
||||
|
||||
@Pointcut("@annotation(com.czg.log.annotation.OperationLog)")
|
||||
public void logPointCut() {
|
||||
|
||||
@@ -108,9 +114,20 @@ public class OperationLogAspect {
|
||||
|
||||
//请求相关信息
|
||||
HttpServletRequest request = HttpContextUtil.getHttpServletRequest();
|
||||
String requestMethod = request.getMethod();
|
||||
if ("GET".equalsIgnoreCase(requestMethod)) {
|
||||
return;
|
||||
}
|
||||
String ip = JakartaServletUtil.getClientIP(request);
|
||||
log.set("ip", ip);
|
||||
log.set("location", AddressUtil.getRealAddressByIp(ip));
|
||||
Object location = redisService.get("IP::" + ip);
|
||||
if (ObjUtil.isNotNull(location)) {
|
||||
log.set("location", Convert.toStr(location));
|
||||
} else {
|
||||
String address = AddressUtil.getRealAddressByIp(ip);
|
||||
redisService.set("IP::" + ip, address);
|
||||
log.set("location", address);
|
||||
}
|
||||
log.set("userAgent", request.getHeader(HttpHeaders.USER_AGENT));
|
||||
log.set("requestUri", request.getRequestURI());
|
||||
log.set("requestMethod", request.getMethod());
|
||||
|
||||
Reference in New Issue
Block a user