diff --git a/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImpl.java b/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImpl.java
index edd22dd..d4bc867 100644
--- a/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImpl.java
+++ b/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImpl.java
@@ -240,7 +240,7 @@
         }
 
         activeMappings = mappings.toArray(new Mapping[mappings.size()]);
-        log.debug("Active mappings updated: {}", mappings);
+        log.debug("Active mappings updated: {} mappings active", mappings.size());
 
         RegistrationSet registrationSet = updateServiceRegistrations(activeMappings);
 
@@ -358,7 +358,10 @@
     }
 
     private String internalGetUserId(final String serviceName, final String subServiceName) {
-        // try with serviceInfo first
+        log.debug(
+                "internalGetUserId: {} active mappings, looking for mapping for {}/{}", 
+                new Object[] { this.activeMappings.length, serviceName, subServiceName });
+        
         for (final Mapping mapping : this.activeMappings) {
             final String userId = mapping.map(serviceName, subServiceName);
             if (userId != null) {
@@ -368,6 +371,10 @@
         }
 
         // second round without serviceInfo
+        log.debug(
+                "internalGetUserId: {} active mappings, looking for mapping for {}/<no subServiceName>", 
+                this.activeMappings.length, serviceName);
+        
         for (Mapping mapping : this.activeMappings) {
             final String userId = mapping.map(serviceName, null);
             if (userId != null) {
@@ -376,7 +383,7 @@
             }
         }
 
-        log.debug("No mapping found, fallback to default user [{}]", this.defaultUser);
+        log.debug("internalGetUserId: no mapping found, fallback to default user [{}]", this.defaultUser);
         return this.defaultUser;
     }
 
