weaver-hrm-organization/src/com/engine/organization/util/LogAspect.java

70 lines
2.4 KiB
Java
Raw Normal View History

2022-04-28 09:46:52 +08:00
package com.engine.organization.util;
import com.engine.organization.annotation.Log;
2022-04-28 13:52:09 +08:00
import com.engine.organization.entity.LoggerContext;
import com.engine.organization.enums.DeleteTypeEnum;
2022-06-28 19:04:14 +08:00
import com.engine.organization.mapper.sislog.SISLogMapper;
2022-04-28 13:52:09 +08:00
import com.engine.organization.util.db.MapperProxyFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
2022-04-28 09:46:52 +08:00
import java.lang.reflect.Method;
2022-04-28 13:52:09 +08:00
import java.util.Date;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
2022-04-28 09:46:52 +08:00
/**
* @Author weaver_cl
2022-06-14 11:07:48 +08:00
* @description: 日志切面操作
2022-04-28 09:46:52 +08:00
* @Date 2022/4/27
* @Version V1.0
**/
2022-07-05 15:15:00 +08:00
public class LogAspect<T> {
2022-04-28 09:46:52 +08:00
Class<T> clazz;
Method method;
2022-04-28 13:52:09 +08:00
LoggerContext loggerContext;
private static final Logger logger = LoggerFactory.getLogger(LogAspect.class);
2022-07-05 15:15:00 +08:00
public LogAspect(Class<T> clazz, Method method, LoggerContext loggerContext) {
2022-04-28 09:46:52 +08:00
this.clazz = clazz;
this.method = method;
2022-04-28 13:52:09 +08:00
this.loggerContext = loggerContext;
2022-04-28 09:46:52 +08:00
}
public void start() {
try {
2022-04-28 13:52:09 +08:00
//线程池
ExecutorService taskExecutor = Executors.newCachedThreadPool();
taskExecutor.execute(() -> {
boolean f = method.isAnnotationPresent(Log.class);
if (f) {
Log annotation = method.getAnnotation(Log.class);
String value = annotation.operateType().getValue();
String operateDesc = annotation.operateDesc();
2022-07-05 15:15:00 +08:00
String operateModuleName = annotation.operateModule().getName();
Integer operateModule = annotation.operateModule().getValue();
2022-04-28 13:52:09 +08:00
loggerContext.setOperateDesc(operateDesc);
loggerContext.setCreateTime(new Date());
loggerContext.setOperateType(value);
loggerContext.setMethodName(method.getName());
loggerContext.setClassName(clazz.getName());
loggerContext.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue());
2022-07-05 09:39:00 +08:00
loggerContext.setOperateModuleName(operateModuleName);
2022-07-05 15:15:00 +08:00
loggerContext.setOperateModule(operateModule);
2022-04-28 13:52:09 +08:00
MapperProxyFactory.getProxy(SISLogMapper.class).insert(loggerContext);
}
});
2022-04-28 09:46:52 +08:00
} catch (Exception e) {
2022-04-28 13:52:09 +08:00
// 记录本地异常日志
logger.error("后置通知异常:异常信息:", e.getMessage());
2022-04-28 09:46:52 +08:00
}
}
}