最近需要给系统开发一个日志处理的功能,但是不想改动原有的代码。所以想采用低侵入式的方式来增加日志管理功能。最后决定采用自定义注解加拦截器的方式来完成日志处理。
实现功能类
首先需要一个LogEnum枚举来完成对日志的分类以及在枚举中存储不同的日志处理对象。然后需要一个LogAnnotation自定义注解,来完成对方法的切入以及利用枚举进行方法分类。需要一个实体类Log存储日志内容。一个LogActionService接口来定义日志返回格式。最后就是定义一个拦截器LogInterceptor来进行日志的拦截啦。
具体实现
LogEnum
- 枚举一共有三个字段,code表示分类,moduleName表示日志监控模块,serviceName表示用来处理日志存储格式的service类。
LogAnnotation
- 注解中只有一个value字段,用来存储枚举类型。
Log
- 日志类存储主键,用户id,用户IP,用户名,邮箱,处理时间以及