diff --git a/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleManager.java b/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleManager.java
index 9357138..a2c0299 100644
--- a/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleManager.java
+++ b/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleManager.java
@@ -534,7 +534,8 @@
                         }
                     }
                 } catch (Exception e) {
-                    log.warn("Can't process added or extra rule {}", e);
+                    log.warn("Can't process added or extra rule {} for device {}:{}",
+                             rule, deviceId, e);
                 }
             }
 
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/IntentManager.java b/core/net/src/main/java/org/onosproject/net/intent/impl/IntentManager.java
index 770c3d9..f694dee 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/IntentManager.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/IntentManager.java
@@ -496,7 +496,7 @@
         public void triggerCompile(Iterable<Key> intentKeys,
                                    boolean compileAllFailed) {
             // TODO figure out who is making excessive calls?
-            log.trace("submitting {} + all?:{}", intentKeys, compileAllFailed);
+            log.trace("submitting {} + all?:{} for compilation", intentKeys, compileAllFailed);
             buildAndSubmitBatches(intentKeys, compileAllFailed);
         }
     }
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/ObjectiveTracker.java b/core/net/src/main/java/org/onosproject/net/intent/impl/ObjectiveTracker.java
index 285e68a..f94fd6f 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/ObjectiveTracker.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/ObjectiveTracker.java
@@ -422,7 +422,7 @@
     private final class InternalPartitionListener implements WorkPartitionEventListener {
         @Override
         public void event(WorkPartitionEvent event) {
-            log.debug("got message {}", event.subject());
+            log.debug("got message {}:{}", event.type(), event.subject());
             scheduleIntentUpdate(1);
         }
     }
diff --git a/providers/lldpcommon/src/main/java/org/onosproject/provider/lldpcommon/LinkDiscovery.java b/providers/lldpcommon/src/main/java/org/onosproject/provider/lldpcommon/LinkDiscovery.java
index ea8a80d..671e6d0 100644
--- a/providers/lldpcommon/src/main/java/org/onosproject/provider/lldpcommon/LinkDiscovery.java
+++ b/providers/lldpcommon/src/main/java/org/onosproject/provider/lldpcommon/LinkDiscovery.java
@@ -265,7 +265,7 @@
         if (context.packetService() == null) {
             return;
         }
-        log.trace("Sending probes out to {}@{}", portNumber, device.id());
+        log.trace("Sending probes out of {}@{}", portNumber, device.id());
         OutboundPacket pkt = createOutBoundLldp(portNumber);
         context.packetService().emit(pkt);
         if (context.useBddp()) {
