Spring: Standard Logging aspect (interceptor)

Yes there are!

<bean id="customizableTraceInterceptor" class="org.springframework.aop.interceptor.CustomizableTraceInterceptor">
    <property name="enterMessage" value="Entering $[methodName]($[arguments])"/>
    <property name="exitMessage" value="Leaving $[methodName](): $[returnValue]"/>
</bean>
<aop:config>
    <aop:advisor advice-ref="customizableTraceInterceptor" pointcut="execution(public * BankAccountServlet.*(..))"/>
</aop:config>

Check out the CustomizableTraceInterceptor API, you can define separate enter/exit/exception messages with several placeholders:

  • $[methodName] – replaced with the name of the method being invoked
  • $[targetClassName] – replaced with the name of the class that is the target of the invocation
  • $[targetClassShortName] – replaced with the short name of the class that is the target of the invocation
  • $[returnValue] – replaced with the value returned by the invocation
  • $[argumentTypes] – replaced with a comma-separated list of the short class names of the method arguments
  • $[arguments] – replaced with a comma-separated list of the String representation of the method arguments
  • $[exception] – replaced with the String representation of any Throwable raised during the invocation
  • $[invocationTime] – replaced with the time, in milliseconds, taken by the method invocation

Leave a Comment