Java Log4j使用Spring AOP的类不正确
我正在尝试使用AOP编程制作跟踪记录器,类似的问题是,即使在获得这样的新记录器之后:Java Log4j使用Spring AOP的类不正确,java,spring,logging,log4j,spring-aop,Java,Spring,Logging,Log4j,Spring Aop,我正在尝试使用AOP编程制作跟踪记录器,类似的问题是,即使在获得这样的新记录器之后: final Logger logger = LoggerFactory.getLogger(joinPoint.getTarget().getClass().getName()); TRACE 2015-11-05 14:35:43,588 LoggingAspect.logMethod(LoggingAspect.java:42) - Some log 所有日志仍然是这样的: final Logger l
final Logger logger = LoggerFactory.getLogger(joinPoint.getTarget().getClass().getName());
TRACE 2015-11-05 14:35:43,588 LoggingAspect.logMethod(LoggingAspect.java:42) - Some log
所有日志仍然是这样的:
final Logger logger = LoggerFactory.getLogger(joinPoint.getTarget().getClass().getName());
TRACE 2015-11-05 14:35:43,588 LoggingAspect.logMethod(LoggingAspect.java:42) - Some log
而不是:
TRACE 2015-11-05 14:35:43,588 MyClass.SomeMethod(MyClass.java:10) - Some log
要从中记录日志的类不会更改。有什么建议吗
joinPoint.getTarget()
返回在其上执行方法的目标对象。我认为,如果您的对象是在静态上下文中执行的,那么这个可能null
。但它可能是空的。所以不要使用它。正如您所看到的,它的行为有点奇怪(我认为它与代理或子类化有关)
你最好使用
joinPoint.getSignature()
检索包含定义类的方法的签名。所以更好地利用
joinPoint.getSignature().getDeclaringType()
检索记录器的类。如果任何答案对您有帮助,请接受它,指出正确的解决方案!