我正在尝试将 AspectJ 记录到模块以更好地分析它。我的应用程序已经在使用 log4J 框架。
如果我在单独的应用程序中运行 AspectJ 类,它可以正常工作,但是当我将它与应用程序集成时它就不起作用了。这是我所做的
applicationContext.xml
<aop:aspectj-autoproxy/>
<bean id="logAspectj" class="com.test.aspect.LoggingAspect"/>
LoggingAspect 类
@Component
@Aspect
public class LoggingAspect {
private final Log log = LogFactory.getLog(this.getClass());
@Around("execution(public void com.db.TestMarshaller.saveDoc(..))")
public Object logTimeMethod(ProceedingJoinPoint joinPoint) throws Throwable {
StopWatch stopWatch = new StopWatch();
stopWatch.start();
Object retVal = joinPoint.proceed();
stopWatch.stop();
StringBuffer logMessage = new StringBuffer();
logMessage.append(joinPoint.getTarget().getClass().getName());
logMessage.append(".");
log.info(logMessage.toString());
return retVal;
}
}
注意:这里的 TestMarshaller 没有通过 Spring 公开。
Log4j 是否有一些特定的 AspectJ 设置?