公司的管理平台会对注入新增、修改、删除等操作记录操作日志。譬如上下架应用,要记录好谁在什么时间因为什么原因上架或下架了什么应用,再譬如审核一些申请,要记录谁在什么时间因为什么原因通过或拒绝了哪个申请。先前的记录日志操作都是在相应的逻辑代码结束部分,添加记录日志的操作,感觉每次都要复制相同的代码到处粘贴,有点low,就想使用注解来实现日志记录。但是要记录的参数可能要从我们的请求里面动态获取,譬如原因、操作人什么的,就需要给注解的属性动态赋值。
新增注解
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface EventLog {
String key() default "";
String value() default "";
String operator() default "";
String remark() default "";
String eventName() default "";
LogModuleEnum logModelEnum() default LogModuleEnum.APP;
}
新增切面
@Aspect
@Component
public class EventLogAspect {
private SpelExpressionParser spelParser = new SpelExpressionParser();
/**
* 返回前记录日志
*/
@AfterReturning