Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Log4j使用Spring AOP的类不正确_Java_Spring_Logging_Log4j_Spring Aop - Fatal编程技术网

Java Log4j使用Spring 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

我正在尝试使用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 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()

检索记录器的类。

如果任何答案对您有帮助,请接受它,指出正确的解决方案!