2

我的拦截器声明如下所示:

<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>

但是没有来自 CustomizableTraceInterceptor 的踪迹。

  • 我在切入点验证包是正确的
  • 我确实检查了它设置为跟踪的日志记录级别。
  • 我验证了 spring-aop.jar 是 maven 依赖项之一
  • 将 aspectjrt 和 aspectjweaver 添加到 maven 依赖项

我什至实现了我自己的拦截器,它扩展了 CustomizableTraceInterceptor 并重写了 writeToLog 方法,放置 System.out.println 只是为了查看该类是否被调用。它没有。

有人能看到我错过了什么吗?

4

1 回答 1

1

您需要设置 bean CustomizableTraceInterceptor 的 loggername 属性。还要确保将日志级别设置为跟踪。

您可以为记录器类声明任何名称 - 您正在编写它作为跟踪 log4j 配置的一部分。

于 2012-09-29T14:55:59.510 回答