修改app日志配置切入点

This commit is contained in:
xuwenbo
2020-09-03 09:59:56 +08:00
parent 05a3d114f3
commit 6b697e0021
18 changed files with 76 additions and 22 deletions

View File

@ -43,7 +43,7 @@ public class AppLogAspect {
/**
* 配置切入点
*/
@Pointcut("@annotation(co.yixiang.logging.aop.log.Log)")
@Pointcut("@annotation(co.yixiang.logging.aop.log.AppLog)")
public void logPointcut() {
// 该方法无方法体,主要为了让同类中其他方法使用此切入点
}
@ -61,7 +61,7 @@ public class AppLogAspect {
Log log = new Log("INFO",System.currentTimeMillis() - currentTime.get());
currentTime.remove();
HttpServletRequest request = RequestHolder.getHttpServletRequest();
logService.save(getUsername(),
logService.saveApp(getUsername(),
StringUtils.getIp(RequestHolder.getHttpServletRequest()),joinPoint,
log,getUid());
return result;

View File

@ -13,12 +13,11 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
import co.yixiang.common.aop.AppLog;
import co.yixiang.logging.aop.log.AppLog;
import co.yixiang.common.aop.NoRepeatSubmit;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
import co.yixiang.constant.SystemConfigConstants;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.activity.domain.YxStoreBargainUser;
import co.yixiang.modules.activity.domain.YxStoreBargainUserHelp;
import co.yixiang.modules.activity.param.BargainShareParam;

View File

@ -12,7 +12,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
import co.yixiang.common.aop.AppLog;
import co.yixiang.logging.aop.log.AppLog;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
import co.yixiang.constant.SystemConfigConstants;

View File

@ -13,7 +13,7 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
import co.yixiang.common.aop.AppLog;
import co.yixiang.logging.aop.log.AppLog;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
import co.yixiang.constant.ShopConstants;

View File

@ -10,7 +10,7 @@ package co.yixiang.modules.cart.rest;
import co.yixiang.annotation.Limit;
import co.yixiang.api.ApiResult;
import co.yixiang.common.aop.AppLog;
import co.yixiang.logging.aop.log.AppLog;
import co.yixiang.common.aop.NoRepeatSubmit;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;

View File

@ -11,7 +11,7 @@ package co.yixiang.modules.coupon.rest;
import cn.hutool.core.util.NumberUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
import co.yixiang.common.aop.AppLog;
import co.yixiang.logging.aop.log.AppLog;
import co.yixiang.common.aop.NoRepeatSubmit;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;

View File

@ -12,7 +12,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
import co.yixiang.common.aop.AppLog;
import co.yixiang.logging.aop.log.AppLog;
import co.yixiang.common.interceptor.AuthCheck;
import co.yixiang.modules.manage.param.OrderPriceParam;
import co.yixiang.modules.manage.param.ShoperQueryParam;

View File

@ -13,7 +13,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
import co.yixiang.common.aop.AppLog;
import co.yixiang.logging.aop.log.AppLog;
import co.yixiang.common.aop.NoRepeatSubmit;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
@ -47,7 +47,6 @@ import com.vdurmont.emoji.EmojiParser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

View File

@ -16,7 +16,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
import co.yixiang.common.aop.AppLog;
import co.yixiang.logging.aop.log.AppLog;
import co.yixiang.common.aop.NoRepeatSubmit;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;

View File

@ -12,7 +12,7 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
import co.yixiang.common.aop.AppLog;
import co.yixiang.logging.aop.log.AppLog;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
import co.yixiang.common.util.CityTreeUtil;

View File

@ -12,7 +12,7 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
import co.yixiang.common.aop.AppLog;
import co.yixiang.logging.aop.log.AppLog;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
import co.yixiang.constant.SystemConfigConstants;

View File

@ -10,7 +10,7 @@ package co.yixiang.modules.user.rest;
import co.yixiang.api.ApiResult;
import co.yixiang.common.aop.AppLog;
import co.yixiang.logging.aop.log.AppLog;
import co.yixiang.common.aop.NoRepeatSubmit;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;

View File

@ -10,7 +10,7 @@ package co.yixiang.modules.user.rest;
import co.yixiang.api.ApiResult;
import co.yixiang.common.aop.AppLog;
import co.yixiang.logging.aop.log.AppLog;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
import co.yixiang.constant.SystemConfigConstants;

View File

@ -11,7 +11,7 @@ package co.yixiang.modules.user.rest;
import cn.hutool.core.bean.BeanUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
import co.yixiang.common.aop.AppLog;
import co.yixiang.logging.aop.log.AppLog;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
import co.yixiang.constant.ShopConstants;

View File

@ -11,18 +11,16 @@ package co.yixiang.modules.wechat.rest.controller;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
import cn.hutool.core.util.StrUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
import co.yixiang.common.aop.AppLog;
import co.yixiang.logging.aop.log.AppLog;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
import co.yixiang.modules.user.domain.YxUser;
import co.yixiang.modules.user.service.YxUserService;
import co.yixiang.modules.wechat.rest.param.BindPhoneParam;
import co.yixiang.modules.wechat.rest.param.WxPhoneParam;
import co.yixiang.mp.config.WxMpConfiguration;
import co.yixiang.tools.config.WxMaConfiguration;
import co.yixiang.utils.RedisUtils;
import co.yixiang.utils.ShopKeyUtils;
@ -30,7 +28,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;

View File

@ -3,7 +3,7 @@
* All rights reserved, Designed By www.yixiang.co
*/
package co.yixiang.common.aop;
package co.yixiang.logging.aop.log;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;

View File

@ -58,6 +58,15 @@ public interface LogService extends BaseService<Log> {
@Async
void save(String username, String ip, ProceedingJoinPoint joinPoint, Log log,Long uid);
/**
* 保存app日志数据
* @param username 用户
* @param ip 请求IP
* @param joinPoint /
* @param log 日志实体
*/
@Async
void saveApp(String username, String ip, ProceedingJoinPoint joinPoint, Log log,Long uid);
/**
* 查询异常详情
* @param id 日志ID

View File

@ -11,6 +11,7 @@ import cn.hutool.json.JSONObject;
import co.yixiang.common.service.impl.BaseServiceImpl;
import co.yixiang.common.utils.QueryHelpPlus;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.logging.aop.log.AppLog;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.logging.service.LogService;
import co.yixiang.logging.service.dto.LogErrorDTO;
@ -148,6 +149,55 @@ public class LogServiceImpl extends BaseServiceImpl<LogMapper, co.yixiang.loggin
this.save(log);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveApp(String username, String ip, ProceedingJoinPoint joinPoint,
co.yixiang.logging.domain.Log log, Long uid){
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
Method method = signature.getMethod();
AppLog aopLog = method.getAnnotation(AppLog.class);
// 方法路径
String methodName = joinPoint.getTarget().getClass().getName()+"."+signature.getName()+"()";
StringBuilder params = new StringBuilder("{");
//参数值
Object[] argValues = joinPoint.getArgs();
//参数名称
String[] argNames = ((MethodSignature)joinPoint.getSignature()).getParameterNames();
if(argValues != null){
for (int i = 0; i < argValues.length; i++) {
params.append(" ").append(argNames[i]).append(": ").append(argValues[i]);
}
}
// 描述
if (log != null) {
log.setDescription(aopLog.value());
}
//类型 0-后台 1-前台
log.setType(aopLog.type());
if(uid != null) {
log.setUid(uid);
}
assert log != null;
log.setRequestIp(ip);
String loginPath = "login";
if(loginPath.equals(signature.getName())){
try {
assert argValues != null;
username = new JSONObject(argValues[0]).get("username").toString();
}catch (Exception e){
e.printStackTrace();
}
}
log.setAddress(StringUtils.getCityInfo(log.getRequestIp()));
log.setMethod(methodName);
log.setUsername(username);
log.setParams(params.toString() + " }");
this.save(log);
}
@Override
public Object findByErrDetail(Long id) {
co.yixiang.logging.domain.Log log = this.getById(id);