无法使用Spring LoadTimeWeaving将建议应用于第三方库(log4g – Logger.getLogger调用)?
您好不能使用Spring LoadTimeWeaving向第三方库(log4g-Logger.getLogger调用)提出建议?
1. SpringConfig.xml
<!-- -->
2. META-INF目录中的aop.xml。
3. Aspect类
package com.app.svc; import org.apache.log4j.Logger; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; @Aspect public class MyLoggingAspect { @Around("getLoggerPointCut()") public Object changeFileAppender(ProceedingJoinPoint pjp) throws Throwable { System.err.println("---------------- MyLoggingAspect ##--------------------"); Object proceed = pjp.proceed(); return proceed; } //This is not working - Pointcuts for classes in 3rd party jar. @Pointcut("execution(public org.apache.log4j.Logger org.apache.log4j.Logger.*(..))") public void getLoggerPointCut(){} //This works - Pointcuts for classes in application. //@Pointcut("execution(public * com.app.svc.NewHello.info(..))") //public void getLoggerPointCut(){} }
注意:提供以下java VM参数。 -javaagent:D:\devel\spring\spring-instrument-3.2.3.RELEASE.jar
它不是在控制台上打印任何东西。 如果我将切入点定义更改为我的应用程序中的某个包,那么它可以工作。
所以看起来它无法将方面应用于Log4j.xml
任何建议PLZ。