使用Spring AOP的Log4j不正确的类

时间:2015-11-05 13:01:48

标签: java spring logging log4j spring-aop

我正在尝试使用AOP编程创建跟踪记录器,类似于this.问题是即使在获得这样的新记录器之后:

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

要记录的类不会更改。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

null

返回执行方法的目标对象。如果您的对象是在静态上下文中执行的话,那么可能null。但它可能是joinPoint.getSignature() 。所以不要使用它。正如你所看到的,它表现得有些奇怪(我认为它与代理或子类化有关)。

你最好使用

joinPoint.getSignature().getDeclaringType()

检索包含定义类的方法的签名。所以最好使用

position: static;

检索记录器的类。