是否可以通过方面记录“模拟”一个类?

问题描述 投票:0回答:1

我开发了一个方面,当我进入和退出具有标准格式的类也将记录该类时,将记录该方面,因此类似:

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;
  }
}
spring-boot logback spring-aop
1个回答
0
投票

来自注释@Slf4j的文档

@Slf4j

将产生:

@Slf4j
public class LogExample {}

这意味着通过使用public class LogExample { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class); } 引用,它将始终是共享代码中的log

一种解决方法如下

LoggingAspect

希望这会有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.