org.springframework.remoting.support

## Class RemoteInvocationTraceInterceptor

- java.lang.Object
- - org.springframework.remoting.support.RemoteInvocationTraceInterceptor

All Implemented Interfaces:
  Advice, Interceptor, MethodInterceptor

    public class RemoteInvocationTraceInterceptor
    extends Object
    implements MethodInterceptor

AOP Alliance MethodInterceptor for tracing remote invocations. Automatically applied by RemoteExporter and its subclasses.

Logs an incoming remote call as well as the finished processing of a remote call at DEBUG level. If the processing of a remote call results in a checked exception, the exception will get logged at INFO level; if it results in an unchecked exception (or error), the exception will get logged at WARN level.

The logging of exceptions is particularly useful to save the stacktrace information on the server-side rather than just propagating the exception to the client (who might or might not log it properly).

Since:
  1.2
Author:
  Juergen Hoeller
See Also:
  `RemoteExporter.setRegisterTraceInterceptor(boolean)`, `RemoteExporter.getProxyForService()`

### Field Summary

Fields
`protected static Log` `logger`

### Constructor Summary

Constructors
Constructor and Description
`RemoteInvocationTraceInterceptor()` Create a new RemoteInvocationTraceInterceptor.
`RemoteInvocationTraceInterceptor(String exporterName)` Create a new RemoteInvocationTraceInterceptor.

### Method Summary

Methods
`Object` `invoke(MethodInvocation invocation)`

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

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

### Field Detail

#### logger

    protected static final Log logger

### Constructor Detail

#### RemoteInvocationTraceInterceptor

    public RemoteInvocationTraceInterceptor()

Create a new RemoteInvocationTraceInterceptor.

#### RemoteInvocationTraceInterceptor

    public RemoteInvocationTraceInterceptor(String exporterName)

Create a new RemoteInvocationTraceInterceptor.

Parameters:
  `exporterName` - the name of the remote exporter (to be used as context information in log messages)

### Method Detail

#### invoke

    public Object invoke(MethodInvocation invocation)
                  throws Throwable

Specified by:
  `invoke` in interface `MethodInterceptor`
Throws:
  `Throwable`