diff --git a/src/main/java/org/apache/sling/clam/job/internal/JcrPropertyScanJobConsumer.java b/src/main/java/org/apache/sling/clam/job/internal/JcrPropertyScanJobConsumer.java
index ee10dde..1df0c34 100644
--- a/src/main/java/org/apache/sling/clam/job/internal/JcrPropertyScanJobConsumer.java
+++ b/src/main/java/org/apache/sling/clam/job/internal/JcrPropertyScanJobConsumer.java
@@ -128,13 +128,17 @@
                 final Value[] values = property.getValues();
                 final Value value = values[index];
                 try (InputStream inputStream = getInputStream(value)) {
-                    logger.debug("scanning property of type {} at {} [{}]", PropertyType.nameFromValue(propertyType), path, index);
+                    if (logger.isDebugEnabled()) {
+                        logger.debug("scanning property of type {} at {} [{}]", PropertyType.nameFromValue(propertyType), path, index);
+                    }
                     final ScanResult scanResult = clamService.scan(inputStream);
                     invokeScanResultHandlers(scanResult, path, index, propertyType, userId);
                 }
             } else { // single property value
                 try (InputStream inputStream = getInputStream(property.getValue())) {
-                    logger.debug("scanning property of type {} at {}", PropertyType.nameFromValue(propertyType), path);
+                    if (logger.isDebugEnabled()) {
+                        logger.debug("scanning property of type {} at {}", PropertyType.nameFromValue(propertyType), path);
+                    }
                     final ScanResult scanResult = clamService.scan(inputStream);
                     invokeScanResultHandlers(scanResult, path, null, propertyType, userId);
                 }
diff --git a/src/main/java/org/apache/sling/clam/oak/internal/NodeObservingJcrPropertyDigger.java b/src/main/java/org/apache/sling/clam/oak/internal/NodeObservingJcrPropertyDigger.java
index 41f6ecb..b487302 100644
--- a/src/main/java/org/apache/sling/clam/oak/internal/NodeObservingJcrPropertyDigger.java
+++ b/src/main/java/org/apache/sling/clam/oak/internal/NodeObservingJcrPropertyDigger.java
@@ -164,10 +164,14 @@
         for (final String name : names) {
             final String p = String.format("%s/%s", path, name);
             if (pattern.matcher(p).matches()) {
-                logger.debug("path '{}' matches pattern '{}'", p, pattern.pattern());
+                if (logger.isDebugEnabled()) {
+                    logger.debug("path '{}' matches pattern '{}'", p, pattern.pattern());
+                }
                 paths.add(p);
             } else {
-                logger.debug("path '{}' doesn't match pattern '{}'", p, pattern.pattern());
+                if (logger.isDebugEnabled()) {
+                    logger.debug("path '{}' doesn't match pattern '{}'", p, pattern.pattern());
+                }
             }
         }
         return paths;
