BUG 2852 : Reduce and improve logging in RemoteRpcImplementation 25/16725/3
authorMoiz Raja <moraja@cisco.com>
Fri, 13 Mar 2015 01:56:51 +0000 (18:56 -0700)
committerMoiz Raja <moraja@cisco.com>
Tue, 24 Mar 2015 21:41:09 +0000 (14:41 -0700)
- Log an invoke rpc error only at warn level by default
- At debug level log the failure stack trace
- Include more context like rpc name and identifier in the log message

Change-Id: I00d3a52418acd07232ed0f4cc93b8de55d03d144
Signed-off-by: Moiz Raja <moraja@cisco.com>
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RemoteRpcImplementation.java

index 360ac68a519f29695410ef50115ddc98c90f2343..a6fdfd3ff97445a2f28cd48e077d66e22fd24f38 100644 (file)
@@ -53,7 +53,16 @@ public class RemoteRpcImplementation implements DOMRpcImplementation {
             @Override
             public void onComplete(final Throwable failure, final Object reply) throws Throwable {
                 if(failure != null) {
-                    LOG.error("InvokeRpc failed", failure);
+
+                    // When we return a failure to the caller they can choose to log it if they like
+                    // so here we just do basic warn logging by default and log the stack trace only when debug
+                    // is enabled
+
+                    LOG.warn("InvokeRpc failed rpc = {}, identifier = {}", rpcMsg.getRpc(), rpcMsg.getIdentifier());
+
+                    if(LOG.isDebugEnabled()){
+                        LOG.debug("Detailed Error", failure);
+                    }
 
                     final String message = String.format("Execution of RPC %s failed",  rpcMsg.getRpc());
                     Collection<RpcError> errors = ((RpcErrorsException)failure).getRpcErrors();