public class RemoteInvocationTraceInterceptor extends Object implements MethodInterceptor
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).
RemoteExporter.setRegisterTraceInterceptor(boolean)
,
RemoteExporter.getProxyForService()
Constructor and Description |
---|
RemoteInvocationTraceInterceptor()
Create a new RemoteInvocationTraceInterceptor.
|
RemoteInvocationTraceInterceptor(String exporterName)
Create a new RemoteInvocationTraceInterceptor.
|
Modifier and Type | Method and Description |
---|---|
Object |
invoke(MethodInvocation invocation)
Implement this method to perform extra treatments before and
after the invocation.
|
protected static final Log logger
public RemoteInvocationTraceInterceptor()
public RemoteInvocationTraceInterceptor(String exporterName)
exporterName
- the name of the remote exporter
(to be used as context information in log messages)@Nullable public Object invoke(MethodInvocation invocation) throws Throwable
MethodInterceptor
Joinpoint.proceed()
.invoke
in interface MethodInterceptor
invocation
- the method invocation joinpointJoinpoint.proceed()
;
might be intercepted by the interceptorThrowable
- if the interceptors or the target object
throws an exception