diff --git a/core/net/src/main/java/org/onosproject/net/flowobjective/impl/FlowObjectiveManager.java b/core/net/src/main/java/org/onosproject/net/flowobjective/impl/FlowObjectiveManager.java
index 8467ea7..44fc986 100644
--- a/core/net/src/main/java/org/onosproject/net/flowobjective/impl/FlowObjectiveManager.java
+++ b/core/net/src/main/java/org/onosproject/net/flowobjective/impl/FlowObjectiveManager.java
@@ -551,12 +551,17 @@
         List<String> pendingNexts = new ArrayList<>();
         for (Integer nextId : pendingForwards.keySet()) {
             Set<PendingNext> pnext = pendingForwards.get(nextId);
+
             StringBuilder pend = new StringBuilder();
-            pend.append("Next Id: ").append(Integer.toString(nextId))
-                .append(" :: ");
+            pend.append("NextId: ")
+                    .append(nextId);
             for (PendingNext pn : pnext) {
-                pend.append(Integer.toString(pn.forwardingObjective().id()))
-                    .append(" ");
+                pend.append("\n    FwdId: ")
+                        .append(String.format("%11s", pn.forwardingObjective().id()))
+                        .append(", DeviceId: ")
+                        .append(pn.deviceId())
+                        .append(", Selector: ")
+                        .append(pn.forwardingObjective().selector().criteria());
             }
             pendingNexts.add(pend.toString());
         }
