diff --git a/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java b/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java
index 3b7963a..661b784 100644
--- a/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java
+++ b/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java
@@ -147,8 +147,8 @@
                     removeItemFromQueue = true;
                     final long endTime = System.currentTimeMillis();
 
-                    distributionLog.info("[{}] PACKAGE-DELIVERED {}: {} paths={}, importTime={}ms, execTime={}ms, size={}B", queueName, requestId,
-                            requestType, paths,
+                    distributionLog.info("[{}] PACKAGE-DELIVERED {}: {} item={}, paths={}, importTime={}ms, execTime={}ms, size={}B", queueName, requestId,
+                            requestType, queueEntry.getItem().getPackageId(), paths,
                             endTime - startTime, endTime - globalStartTime,
                             packageSize);
                 } catch (RecoverableDistributionException e) {
diff --git a/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java b/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java
index 69fea98..256f6f5 100644
--- a/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java
+++ b/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java
@@ -18,7 +18,9 @@
  */
 package org.apache.sling.distribution.queue;
 
+import java.util.Arrays;
 import java.util.Map;
+
 import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.api.wrappers.ValueMapDecorator;
 import org.apache.sling.distribution.packaging.DistributionPackage;
@@ -44,7 +46,6 @@
         super(base);
         this.packageId = packageId;
         this.size = size;
-
     }
 
     @NotNull
@@ -64,7 +65,25 @@
     public String toString() {
         return "DistributionQueueItem{" +
                 "id='" + packageId + '\'' +
-                ", info=" + super.toString() +
+                ", info={" + getQueueInfo() + '}' +
                 '}';
     }
+
+    /*
+     * convert the map of object values into string form
+     */
+    private String getQueueInfo() {
+        String queueItemStr = "";
+        for(String key : super.keySet()) {
+            Object value = super.get(key);
+            String valueString = "";
+            if (value.getClass().isArray()) {
+                valueString = key + "=" + Arrays.toString((Object[])value);
+            } else {
+                valueString = key + "=" + value.toString();
+            }
+            queueItemStr = String.join(",", queueItemStr, valueString);
+        }
+        return queueItemStr.isEmpty() ? queueItemStr : queueItemStr.substring(1);
+    }
 }
