diff --git a/src/main/java/net/onrc/onos/core/datagrid/web/IntentResource.java b/src/main/java/net/onrc/onos/core/datagrid/web/IntentResource.java
index 1445e4b..bdb6634 100755
--- a/src/main/java/net/onrc/onos/core/datagrid/web/IntentResource.java
+++ b/src/main/java/net/onrc/onos/core/datagrid/web/IntentResource.java
@@ -1,7 +1,3 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
 package net.onrc.onos.core.datagrid.web;
 
 import java.io.IOException;
diff --git a/src/main/java/net/onrc/onos/core/intent/runtime/PathCalcRuntimeModule.java b/src/main/java/net/onrc/onos/core/intent/runtime/PathCalcRuntimeModule.java
index a3ffa90..a9ba287 100755
--- a/src/main/java/net/onrc/onos/core/intent/runtime/PathCalcRuntimeModule.java
+++ b/src/main/java/net/onrc/onos/core/intent/runtime/PathCalcRuntimeModule.java
@@ -51,7 +51,7 @@
         }
 
         public void logThis() {
-            log.error("Time:{}, Step:{}", time, step);
+            log.debug("Time:{}, Step:{}", time, step);
         }
     }
 
diff --git a/src/main/java/net/onrc/onos/core/intent/runtime/PersistIntent.java b/src/main/java/net/onrc/onos/core/intent/runtime/PersistIntent.java
index e2b2917..1b34419 100755
--- a/src/main/java/net/onrc/onos/core/intent/runtime/PersistIntent.java
+++ b/src/main/java/net/onrc/onos/core/intent/runtime/PersistIntent.java
@@ -1,7 +1,3 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
 package net.onrc.onos.core.intent.runtime;
 
 import java.io.ByteArrayOutputStream;
diff --git a/src/main/java/net/onrc/onos/core/intent/runtime/PlanCalcRuntime.java b/src/main/java/net/onrc/onos/core/intent/runtime/PlanCalcRuntime.java
index 6636be2..436edaf 100644
--- a/src/main/java/net/onrc/onos/core/intent/runtime/PlanCalcRuntime.java
+++ b/src/main/java/net/onrc/onos/core/intent/runtime/PlanCalcRuntime.java
@@ -43,7 +43,7 @@
         long step1 = System.nanoTime();
         List<Set<FlowEntry>> plan = buildPhases(flowEntries);
         long step2 = System.nanoTime();
-        log.error("MEASUREMENT: Compute flow entries: {} ns, Build phases: {} ns",
+        log.debug("MEASUREMENT: Compute flow entries: {} ns, Build phases: {} ns",
                 (step1 - start), (step2 - step1));
         return plan;
     }
diff --git a/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallModule.java b/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallModule.java
index ba24ae5..6afe6b0 100644
--- a/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallModule.java
+++ b/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallModule.java
@@ -153,7 +153,7 @@
     }
 
     public static void log(String step) {
-        log.error("Time:{}, Step:{}", System.nanoTime(), step);
+        log.debug("Time:{}, Step:{}", System.nanoTime(), step);
     }
 
     @Override
diff --git a/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallRuntime.java b/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallRuntime.java
index 00c3f7e..4805f51 100644
--- a/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallRuntime.java
+++ b/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallRuntime.java
@@ -93,7 +93,7 @@
             if (map.values().isEmpty()) {
                 result.append("No flow mods installed\n");
             }
-            log.error(result.toString());
+            log.debug(result.toString());
         }
     }
 
@@ -144,12 +144,12 @@
                 }
             }
             long step4 = System.nanoTime();
-            log.error("MEASUREMENT: convert: {} ns, push: {} ns, barrierWait: {} ns",
+            log.debug("MEASUREMENT: convert: {} ns, push: {} ns, barrierWait: {} ns",
                     step2 - step1, step3 - step2, step4 - step3);
 
         }
         long end = System.nanoTime();
-        log.error("MEASUREMENT: Install plan: {} ns", (end - start));
+        log.debug("MEASUREMENT: Install plan: {} ns", (end - start));
         FlowModCount.printCount();
 
         // TODO: we assume that the plan installation succeeds for now
