diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sEndpointsWatcher.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sEndpointsWatcher.java
index 0b56de3..c3139c1 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sEndpointsWatcher.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sEndpointsWatcher.java
@@ -159,7 +159,7 @@
 
         @Override
         public void onClose(KubernetesClientException e) {
-            log.info("Endpoints watcher OnClose: {}" + e);
+            log.warn("Endpoints watcher OnClose", e);
         }
 
         private void processAddition(Endpoints endpoints) {
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sIngressWatcher.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sIngressWatcher.java
index b873c1a..0b531df 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sIngressWatcher.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sIngressWatcher.java
@@ -159,7 +159,7 @@
 
         @Override
         public void onClose(KubernetesClientException e) {
-            log.info("Ingress watcher OnClose: {}" + e);
+            log.warn("Ingress watcher OnClose", e);
         }
 
         private void processAddition(Ingress ingress) {
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sNamespaceWatcher.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sNamespaceWatcher.java
index a9ac4cb..090f1ff 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sNamespaceWatcher.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sNamespaceWatcher.java
@@ -160,7 +160,7 @@
 
         @Override
         public void onClose(KubernetesClientException e) {
-            log.info("Namespace watcher OnClose: {}" + e);
+            log.warn("Namespace watcher OnClose", e);
         }
 
         private void processAddition(Namespace namespace) {
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sNetworkPolicyWatcher.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sNetworkPolicyWatcher.java
index 1f8c4a3..311ac8a 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sNetworkPolicyWatcher.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sNetworkPolicyWatcher.java
@@ -161,7 +161,7 @@
 
         @Override
         public void onClose(KubernetesClientException e) {
-            log.info("Network policy watcher OnClose: {}" + e);
+            log.warn("Network policy watcher OnClose", e);
         }
 
         private void processAddition(NetworkPolicy networkPolicy) {
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sPodWatcher.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sPodWatcher.java
index 948865a..978dbbf 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sPodWatcher.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sPodWatcher.java
@@ -157,7 +157,7 @@
 
         @Override
         public void onClose(KubernetesClientException e) {
-            log.info("Pod watcher OnClose: {}" + e);
+            log.warn("Pod watcher OnClose", e);
         }
 
         private void processAddition(Pod pod) {
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sServiceWatcher.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sServiceWatcher.java
index 3cb079a..c32efa1 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sServiceWatcher.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sServiceWatcher.java
@@ -160,7 +160,7 @@
 
         @Override
         public void onClose(KubernetesClientException e) {
-            log.info("Service watcher OnClose: {}" + e);
+            log.warn("Service watcher OnClose", e);
         }
 
         private void processAddition(Service service) {
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/K8sNetworkingUtil.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/K8sNetworkingUtil.java
index d353cf3..045b300 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/K8sNetworkingUtil.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/K8sNetworkingUtil.java
@@ -170,13 +170,13 @@
             Object jsonObject = mapper.readValue(jsonString, Object.class);
             return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonObject);
         } catch (JsonParseException e) {
-            log.debug("JsonParseException caused by {}", e);
+            log.debug("JsonParseException", e);
         } catch (JsonMappingException e) {
-            log.debug("JsonMappingException caused by {}", e);
+            log.debug("JsonMappingException", e);
         } catch (JsonProcessingException e) {
-            log.debug("JsonProcessingException caused by {}", e);
+            log.debug("JsonProcessingException", e);
         } catch (IOException e) {
-            log.debug("IOException caused by {}", e);
+            log.debug("IOException", e);
         }
         return null;
     }
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/RulePopulatorUtil.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/RulePopulatorUtil.java
index 89a2e14..ac7752f 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/RulePopulatorUtil.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/RulePopulatorUtil.java
@@ -142,7 +142,7 @@
             extensionSelector.setPropertyValue(CT_STATE, ctState);
             extensionSelector.setPropertyValue(CT_STATE_MASK, ctSateMask);
         } catch (Exception e) {
-            log.error("Failed to set nicira match CT state because of {}", e);
+            log.error("Failed to set nicira match CT state", e);
             return null;
         }
 
@@ -579,7 +579,7 @@
                 }
 
             } catch (Exception e) {
-                log.error("Failed to set NAT due to error : {}", e);
+                log.error("Failed to set NAT due to error", e);
                 return null;
             }
 
@@ -595,7 +595,7 @@
                 ctTreatment.setPropertyValue(CT_TABLE, table > -1 ? table : 0xff);
                 ctTreatment.setPropertyValue(CT_NESTED_ACTIONS, nat);
             } catch (Exception e) {
-                log.error("Failed to set CT due to error : {}", e);
+                log.error("Failed to set CT due to error", e);
                 return null;
             }
 
