AOP写日志

博客提供了特别详细的博客地址,虽未提及具体内容,但可能包含信息技术相关信息。
首先,需要定义一个注解来标识需要记录操作日志的方法: ```java @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Loggable { String value() default ""; } ``` 然后,定义一个切面类来实现记录操作日志的功能: ```java @Aspect @Component public class LoggingAspect { @Autowired private LogService logService; @Around("@annotation(loggable)") public Object logMethodExecution(ProceedingJoinPoint joinPoint, Loggable loggable) throws Throwable { String methodName = joinPoint.getSignature().getName(); String className = joinPoint.getTarget().getClass().getSimpleName(); String message = loggable.value().isEmpty() ? methodName : loggable.value(); Object[] args = joinPoint.getArgs(); String argString = Arrays.toString(args); Object result = null; try { result = joinPoint.proceed(); logService.log(className, methodName, message, argString, result.toString(), LogType.INFO); } catch (Exception e) { logService.log(className, methodName, message, argString, e.getMessage(), LogType.ERROR); throw e; } return result; } } ``` 在切面类中,我们使用@Around注解来标识切面类型为Around,同时使用@annotation(loggable)来指定需要拦截的方法必须被@Loggable注解修饰。在切面方法中,我们可以获取到目标方法的类名、方法名、参数列表以及返回值,并把这些信息记录到数据库中。 最后,我们需要定义一个LogService类来实现将操作日志记录到数据库的功能。具体实现可以根据项目的具体情况而定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值