我的拦截器声明如下所示:
<bean id="loggingInterceptor"
class="org.springframework.aop.interceptor.CustomizableTraceInterceptor">
<property name="enterMessage" value="Enter: $[targetClassShortName].$[methodName]($[arguments])"/>
<property name="exitMessage" value="Exit: $[targetClassShortName].$[methodName](...) returning [$[returnValue]]"/>
</bean>
使用切入点:
<aop:config proxy-target-class="true">
<aop:advisor advice-ref="loggingInterceptor"
pointcut="execution(public * com.mycompany.server..*.*(..))"/>
</aop:config>
但是 CustomizedTraceInterceptor 没有任何痕迹。
- 我验证了切入点中的包是正确的
- 我确实检查了我的日志记录级别,它被设置为跟踪。
- 我验证了 spring-aop.jar 是 Maven 依赖项之一
- 添加了aspectjrt和aspectjweaver到maven依赖
我什至实现了自己的拦截器,该拦截器扩展了 CustomizedTraceInterceptor 并覆盖了 writeToLog 方法,放置 System.out.println 只是为了查看该类是否被调用。事实并非如此。
有人能看到我错过了什么吗?
最佳答案
您需要设置 bean CustomizedTraceInterceptor 的 loggername 属性。 另请确保将日志级别设置为跟踪。
您可以为记录器类声明任何名称 - 您正在将其编写为跟踪 log4j 配置的一部分。
关于Spring:CustomizedTraceInterceptor 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12150666/