org.springframework.aop.interceptor

## Class SimpleTraceInterceptor

- java.lang.Object
- - org.springframework.aop.interceptor.AbstractTraceInterceptor
  - - org.springframework.aop.interceptor.SimpleTraceInterceptor

- All Implemented Interfaces:
    Serializable, Advice, Interceptor, MethodInterceptor
  Direct Known Subclasses:
    DebugInterceptor

      public class SimpleTraceInterceptor
      extends AbstractTraceInterceptor

  Simple AOP Alliance `MethodInterceptor` that can be introduced in a chain to display verbose trace information about intercepted method invocations, with method entry and method exit info.

  Consider using `CustomizableTraceInterceptor` for more advanced needs.

  Since:
    1.2
  Author:
    Dmitriy Kopylenko, Juergen Hoeller
  See Also:
    `CustomizableTraceInterceptor`, Serialized Form

- - ### Field Summary

    - ### Fields inherited from class org.springframework.aop.interceptor.AbstractTraceInterceptor

      `defaultLogger`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SimpleTraceInterceptor()` Create a new SimpleTraceInterceptor with a static logger.
    `SimpleTraceInterceptor(boolean useDynamicLogger)` Create a new SimpleTraceInterceptor with dynamic or static logger, according to the given flag.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected String` | `getInvocationDescription(MethodInvocation invocation)` Return a description for the given method invocation.
    `protected Object` | `invokeUnderTrace(MethodInvocation invocation, Log logger)` Subclasses must override this method to perform any tracing around the supplied `MethodInvocation`.

    - ### Methods inherited from class org.springframework.aop.interceptor.AbstractTraceInterceptor

      `getClassForLogging, getLoggerForInvocation, invoke, isInterceptorEnabled, isLogEnabled, setHideProxyClassNames, setLoggerName, setUseDynamicLogger`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SimpleTraceInterceptor

          public SimpleTraceInterceptor()

      Create a new SimpleTraceInterceptor with a static logger.

    - #### SimpleTraceInterceptor

          public SimpleTraceInterceptor(boolean useDynamicLogger)

      Create a new SimpleTraceInterceptor with dynamic or static logger, according to the given flag.
      Parameters:
        `useDynamicLogger` - whether to use a dynamic logger or a static logger
      See Also:
        `AbstractTraceInterceptor.setUseDynamicLogger(boolean)`

  - ### Method Detail

    - #### invokeUnderTrace

          protected Object invokeUnderTrace(MethodInvocation invocation,
                                Log logger)
                                     throws Throwable

      Description copied from class: `AbstractTraceInterceptor`
      Subclasses must override this method to perform any tracing around the supplied `MethodInvocation`. Subclasses are responsible for ensuring that the `MethodInvocation` actually executes by calling `MethodInvocation.proceed()`.

      By default, the passed-in `Log` instance will have log level "trace" enabled. Subclasses do not have to check for this again, unless they overwrite the `isInterceptorEnabled` method to modify the default behavior.

      Specified by:
        `invokeUnderTrace` in class `AbstractTraceInterceptor`
        `logger` - the `Log` to write trace messages to
      Returns:
        the result of the call to `MethodInvocation.proceed()`
      Throws:
        `Throwable` - if the call to `MethodInvocation.proceed()` encountered any errors
      See Also:
        `AbstractTraceInterceptor.isInterceptorEnabled(org.aopalliance.intercept.MethodInvocation, org.apache.commons.logging.Log)`, `AbstractTraceInterceptor.isLogEnabled(org.apache.commons.logging.Log)`

    - #### getInvocationDescription

          protected String getInvocationDescription(MethodInvocation invocation)

      Return a description for the given method invocation.
      Parameters:
        `invocation` - the invocation to describe
      Returns:
        the description