diff --git a/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java b/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java
index 73f3076..ce865d8 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java
@@ -576,8 +576,7 @@
             try {
                 this.write(msglist);
             } catch (IOException e) {
-                // TODO: log exception
-                e.printStackTrace();
+                log.error("Failed flushing messages", e);
             }
             msglist.clear();
         }
diff --git a/src/main/java/net/onrc/onos/core/flowprogrammer/FlowPusher.java b/src/main/java/net/onrc/onos/core/flowprogrammer/FlowPusher.java
index a660cd6..1a7cae8 100644
--- a/src/main/java/net/onrc/onos/core/flowprogrammer/FlowPusher.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/FlowPusher.java
@@ -382,8 +382,7 @@
                         }
                         size += msg.getLength();
                     } catch (IOException e) {
-                        e.printStackTrace();
-                        log.error("Exception in sending message ({}) : {}", msg, e);
+                        log.error("Exception in sending message (" + msg + "):", e);
                     }
                 }
 
@@ -1003,12 +1002,10 @@
         try {
             return future.get();
         } catch (InterruptedException e) {
-            e.printStackTrace();
-            log.error("InterruptedException: {}", e);
+            log.error("InterruptedException:", e);
             return null;
         } catch (ExecutionException e) {
-            e.printStackTrace();
-            log.error("ExecutionException: {}", e);
+            log.error("ExecutionException:", e);
             return null;
         }
     }
diff --git a/src/main/java/net/onrc/onos/core/flowprogrammer/FlowSynchronizer.java b/src/main/java/net/onrc/onos/core/flowprogrammer/FlowSynchronizer.java
index b0de5bf..af3cc70 100644
--- a/src/main/java/net/onrc/onos/core/flowprogrammer/FlowSynchronizer.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/FlowSynchronizer.java
@@ -223,16 +223,13 @@
                 Future<List<OFStatistics>> dfuture = sw.getStatistics(req);
                 entries = dfuture.get();
             } catch (IOException e) {
-                // TODO Auto-generated catch block
-                e.printStackTrace();
+                log.error("Error getting statistics", e);
                 return null;
             } catch (InterruptedException e) {
-                // TODO Auto-generated catch block
-                e.printStackTrace();
+                log.error("Error getting statistics", e);
                 return null;
             } catch (ExecutionException e) {
-                // TODO Auto-generated catch block
-                e.printStackTrace();
+                log.error("Error getting statistics", e);
                 return null;
             }
 
