我开发了一个方面,当我进入和退出具有标准格式的类也将记录该类时,将记录该方面,因此类似:
2020-03-20 20:05:30.280 INFO 3336 --- [nio-8080-exec-2] c.a.common.aop.LoggingAspect : Entering method
[请注意,日志记录类似乎是“ LoggingAspect”。而是可以记录代理的类名吗?此刻我得到:
2020-03-20 20:05:30.280 INFO 3336 --- [nio-8080-exec-2] c.a.common.aop.LoggingAspect : Entering method
2020-03-20 20:06:30.280 INFO 3336 --- [nio-8080-exec-2] c.a.my.proxied.Class : Doing stuff
2020-03-20 20:05:30.280 INFO 3336 --- [nio-8080-exec-2] c.a.common.aop.LoggingAspect : Exiting method
我希望每行总是有c.a.my.proxied.Class
。这是我的方面:
@Aspect
@Order(1)
@Component
@Slf4j
public class LoggingAspect {
@Pointcut("@within(org.springframework.web.bind.annotation.RestController)")
private void controllerInvocation() {}
@Around("controllerInvocation()")
public Object logEntering(ProceedingJoinPoint joinPoint) throws Throwable{
log.info("Entering method");
Object res = joinPoint.proceed();
log.info("Exiting method");
return res;
}
}
来自注释@Slf4j
的文档
@Slf4j
将产生:
@Slf4j
public class LogExample {}
这意味着通过使用public class LogExample {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
}
引用,它将始终是共享代码中的log
。
一种解决方法如下
LoggingAspect
希望这会有所帮助