This is an automated email from the ASF dual-hosted git repository.

voonhous pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git


The following commit(s) were added to refs/heads/master by this push:
     new 1030cf9d1af7 refactor(common): use SLF4J parameterized logging instead 
of string concatenation (#19158)
1030cf9d1af7 is described below

commit 1030cf9d1af7192e2328fe0cf0ce4041abc024bf
Author: voonhous <[email protected]>
AuthorDate: Sat Jul 4 17:44:47 2026 +0800

    refactor(common): use SLF4J parameterized logging instead of string 
concatenation (#19158)
    
    Convert log string concatenation to {} placeholders across hudi-common.
    Mechanical and behavior-preserving. Notable manual handling:
    - ZookeeperTestService: pass e.toString() (not e) so the exception stays an
      inline message value instead of being peeled as the SLF4J stacktrace arg,
      preserving the existing 'ignore as expected' behavior.
    - ConfigUtils: drop redundant path.toString() in the parameterized arg.
    - JmxMetricsReporter: the message wraps the value in literal braces; written
      as "{port: {}}" so SLF4J fills the inner {} and keeps the outer braces.
---
 .../apache/hudi/common/model/HoodieCommitMetadata.java |  2 +-
 .../hudi/common/table/timeline/TimelineUtils.java      |  2 +-
 .../common/table/view/RocksDbBasedFileSystemView.java  | 10 ++++------
 .../java/org/apache/hudi/common/util/ConfigUtils.java  |  2 +-
 .../org/apache/hudi/metrics/JmxMetricsReporter.java    |  8 ++++----
 .../apache/hudi/metrics/MetricsReporterFactory.java    |  2 +-
 .../org/apache/hudi/TestReportJvmConfiguration.java    | 18 +++++++++---------
 .../testutils/minicluster/ZookeeperTestService.java    |  6 +++---
 8 files changed, 24 insertions(+), 26 deletions(-)

diff --git 
a/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieCommitMetadata.java
 
b/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieCommitMetadata.java
index 4a4767eb8366..d96d589f5b9b 100644
--- 
a/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieCommitMetadata.java
+++ 
b/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieCommitMetadata.java
@@ -220,7 +220,7 @@ public class HoodieCommitMetadata implements Serializable {
 
   public String toJsonString() throws IOException {
     if (partitionToWriteStats.containsKey(null)) {
-      log.info("partition path is null for " + 
partitionToWriteStats.get(null));
+      log.info("partition path is null for {}", 
partitionToWriteStats.get(null));
       partitionToWriteStats.remove(null);
     }
     return 
JsonUtils.getObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(this);
diff --git 
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/TimelineUtils.java
 
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/TimelineUtils.java
index 6c27d1f8e2a6..647cab77123d 100644
--- 
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/TimelineUtils.java
+++ 
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/TimelineUtils.java
@@ -263,7 +263,7 @@ public class TimelineUtils {
 
   private static Option<String> getMetadataValue(HoodieTableMetaClient 
metaClient, String extraMetadataKey, HoodieInstant instant) {
     try {
-      log.info("reading checkpoint info for:" + instant + " key: " + 
extraMetadataKey);
+      log.info("reading checkpoint info for:{} key: {}", instant, 
extraMetadataKey);
       byte[] contents = 
metaClient.getCommitsTimeline().getInstantDetails(instant).get();
       if (instant.isCompleted()) {
         if (contents == null || contents.length == 0) {
diff --git 
a/hudi-common/src/main/java/org/apache/hudi/common/table/view/RocksDbBasedFileSystemView.java
 
b/hudi-common/src/main/java/org/apache/hudi/common/table/view/RocksDbBasedFileSystemView.java
index fee37f33380b..c8df4063abf0 100644
--- 
a/hudi-common/src/main/java/org/apache/hudi/common/table/view/RocksDbBasedFileSystemView.java
+++ 
b/hudi-common/src/main/java/org/apache/hudi/common/table/view/RocksDbBasedFileSystemView.java
@@ -207,8 +207,7 @@ public class RocksDbBasedFileSystemView extends 
IncrementalTimelineSyncFileSyste
 
   @Override
   void resetFileGroupsInPendingClustering(Map<HoodieFileGroupId, 
HoodieInstant> fgIdToInstantMap) {
-    log.info("Resetting file groups in pending clustering to ROCKSDB based 
file-system view at "
-        + config.getRocksdbBasePath() + ", Total file-groups=" + 
fgIdToInstantMap.size());
+    log.info("Resetting file groups in pending clustering to ROCKSDB based 
file-system view at {}, Total file-groups={}", config.getRocksdbBasePath(), 
fgIdToInstantMap.size());
 
     // Delete all replaced file groups
     
rocksDB.prefixDelete(schemaHelper.getColFamilyForFileGroupsInPendingClustering(),
 "part=");
@@ -517,8 +516,7 @@ public class RocksDbBasedFileSystemView extends 
IncrementalTimelineSyncFileSyste
 
   @Override
   protected void resetReplacedFileGroups(final Map<HoodieFileGroupId, 
HoodieInstant> replacedFileGroups) {
-    log.info("Resetting replacedFileGroups to ROCKSDB based file-system view 
at "
-        + config.getRocksdbBasePath() + ", Total file-groups=" + 
replacedFileGroups.size());
+    log.info("Resetting replacedFileGroups to ROCKSDB based file-system view 
at {}, Total file-groups={}", config.getRocksdbBasePath(), 
replacedFileGroups.size());
 
     // Delete all replaced file groups
     rocksDB.prefixDelete(schemaHelper.getColFamilyForReplacedFileGroups(), 
"part=");
@@ -543,8 +541,8 @@ public class RocksDbBasedFileSystemView extends 
IncrementalTimelineSyncFileSyste
           })
       );
 
-      log.info("Finished adding replaced file groups to  partition (" + 
partitionPath + ") to ROCKSDB based view at "
-          + config.getRocksdbBasePath() + ", Total file-groups=" + 
partitionToReplacedFileGroupsEntry.getValue().size());
+      log.info("Finished adding replaced file groups to  partition ({}) to 
ROCKSDB based view at {}, Total file-groups={}",
+          partitionPath, config.getRocksdbBasePath(), 
partitionToReplacedFileGroupsEntry.getValue().size());
     });
   }
 
diff --git 
a/hudi-common/src/main/java/org/apache/hudi/common/util/ConfigUtils.java 
b/hudi-common/src/main/java/org/apache/hudi/common/util/ConfigUtils.java
index 398494a957dd..4acc973217ed 100644
--- a/hudi-common/src/main/java/org/apache/hudi/common/util/ConfigUtils.java
+++ b/hudi-common/src/main/java/org/apache/hudi/common/util/ConfigUtils.java
@@ -682,7 +682,7 @@ public class ConfigUtils {
           return props;
         } catch (IOException e) {
           if (HoodieExceptionUtil.isPermissionDeniedException(e)) {
-            log.error("Permission denied for " + path.toString() + " file.", 
e);
+            log.error("Permission denied for {} file.", path, e);
             throw new HoodieIOException("Permission denied for " + path + " 
file path. User does not have read access on the dataset.", e);
           } else {
             log.warn("Could not read properties from {}: {}", path, e);
diff --git 
a/hudi-common/src/main/java/org/apache/hudi/metrics/JmxMetricsReporter.java 
b/hudi-common/src/main/java/org/apache/hudi/metrics/JmxMetricsReporter.java
index 623a055100a7..da3613165285 100644
--- a/hudi-common/src/main/java/org/apache/hudi/metrics/JmxMetricsReporter.java
+++ b/hudi-common/src/main/java/org/apache/hudi/metrics/JmxMetricsReporter.java
@@ -60,7 +60,7 @@ public class JmxMetricsReporter extends MetricsReporter {
             "Could not start JMX server on any configured port. Ports: " + 
portsConfig
                 + ". Maybe require port range for multiple hoodie tables");
       }
-      log.info("Configured JMXReporter with {port:" + portsConfig + "}");
+      log.info("Configured JMXReporter with {port: {}}", portsConfig);
     } catch (Exception e) {
       String msg = "Jmx initialize failed: ";
       log.error(msg, e);
@@ -76,13 +76,13 @@ public class JmxMetricsReporter extends MetricsReporter {
     for (int port : ports) {
       try {
         jmxReporterServer = createJmxReport(host, port);
-        log.info("Started JMX server on port " + port + ".");
+        log.info("Started JMX server on port {}.", port);
         break;
       } catch (Exception e) {
         if (e.getCause() instanceof ExportException) {
-          log.info("Skip for initializing jmx port " + port + " because of 
already in use");
+          log.info("Skip for initializing jmx port {} because of already in 
use", port);
         } else {
-          log.info("Failed to initialize jmx port " + port + ". " + 
e.getMessage());
+          log.info("Failed to initialize jmx port {}. {}", port, 
e.getMessage());
         }
       }
     }
diff --git 
a/hudi-common/src/main/java/org/apache/hudi/metrics/MetricsReporterFactory.java 
b/hudi-common/src/main/java/org/apache/hudi/metrics/MetricsReporterFactory.java
index b93968e23d73..e2b850e8732f 100644
--- 
a/hudi-common/src/main/java/org/apache/hudi/metrics/MetricsReporterFactory.java
+++ 
b/hudi-common/src/main/java/org/apache/hudi/metrics/MetricsReporterFactory.java
@@ -94,7 +94,7 @@ public class MetricsReporterFactory {
         reporter = new Slf4jMetricsReporter(registry);
         break;
       default:
-        log.error("Reporter type[" + type + "] is not supported.");
+        log.error("Reporter type[{}] is not supported.", type);
         break;
     }
     return Option.ofNullable(reporter);
diff --git 
a/hudi-common/src/test/java/org/apache/hudi/TestReportJvmConfiguration.java 
b/hudi-common/src/test/java/org/apache/hudi/TestReportJvmConfiguration.java
index ea3eeade1baa..57edd95e1c65 100644
--- a/hudi-common/src/test/java/org/apache/hudi/TestReportJvmConfiguration.java
+++ b/hudi-common/src/test/java/org/apache/hudi/TestReportJvmConfiguration.java
@@ -42,14 +42,14 @@ public class TestReportJvmConfiguration {
     MemoryUsage nonHeapMemoryUsage = memoryBean.getNonHeapMemoryUsage();
 
     LOG.warn("Heap Memory Usage (MemoryMXBean):");
-    LOG.warn("  Used: " + heapMemoryUsage.getUsed() + " bytes");
-    LOG.warn("  Committed: " + heapMemoryUsage.getCommitted() + " bytes");
-    LOG.warn("  Max: " + heapMemoryUsage.getMax() + " bytes");
+    LOG.warn("  Used: {} bytes", heapMemoryUsage.getUsed());
+    LOG.warn("  Committed: {} bytes", heapMemoryUsage.getCommitted());
+    LOG.warn("  Max: {} bytes", heapMemoryUsage.getMax());
 
     LOG.warn("Non-Heap Memory Usage (MemoryMXBean):");
-    LOG.warn("  Used: " + nonHeapMemoryUsage.getUsed() + " bytes");
-    LOG.warn("  Committed: " + nonHeapMemoryUsage.getCommitted() + " bytes");
-    LOG.warn("  Max: " + nonHeapMemoryUsage.getMax() + " bytes");
+    LOG.warn("  Used: {} bytes", nonHeapMemoryUsage.getUsed());
+    LOG.warn("  Committed: {} bytes", nonHeapMemoryUsage.getCommitted());
+    LOG.warn("  Max: {} bytes", nonHeapMemoryUsage.getMax());
   }
 
   private void reportMemoryUsageWithRuntime() {
@@ -60,8 +60,8 @@ public class TestReportJvmConfiguration {
     long usedMemory = totalMemory - freeMemory;
 
     LOG.warn("Memory Usage (Runtime):");
-    LOG.warn("  Total Memory: " + totalMemory + " bytes");
-    LOG.warn("  Free Memory: " + freeMemory + " bytes");
-    LOG.warn("  Used Memory: " + usedMemory + " bytes");
+    LOG.warn("  Total Memory: {} bytes", totalMemory);
+    LOG.warn("  Free Memory: {} bytes", freeMemory);
+    LOG.warn("  Used Memory: {} bytes", usedMemory);
   }
 }
diff --git 
a/hudi-common/src/test/java/org/apache/hudi/common/testutils/minicluster/ZookeeperTestService.java
 
b/hudi-common/src/test/java/org/apache/hudi/common/testutils/minicluster/ZookeeperTestService.java
index d3e835966242..779f4cb89ef7 100644
--- 
a/hudi-common/src/test/java/org/apache/hudi/common/testutils/minicluster/ZookeeperTestService.java
+++ 
b/hudi-common/src/test/java/org/apache/hudi/common/testutils/minicluster/ZookeeperTestService.java
@@ -101,7 +101,7 @@ public class ZookeeperTestService {
 
     // NOTE: Changed from the original, where InetSocketAddress was
     // originally created to bind to the wildcard IP, we now configure it.
-    log.info("Zookeeper force binding to: " + this.bindIP);
+    log.info("Zookeeper force binding to: {}", this.bindIP);
     standaloneServerFactory.configure(new InetSocketAddress(bindIP, 
clientPort), 1000);
 
     // Start up this ZK server
@@ -118,7 +118,7 @@ public class ZookeeperTestService {
     }
 
     started = true;
-    log.info("Zookeeper Minicluster service started on client port: " + 
clientPort);
+    log.info("Zookeeper Minicluster service started on client port: {}", 
clientPort);
     return zooKeeperServer;
   }
 
@@ -217,7 +217,7 @@ public class ZookeeperTestService {
         }
       } catch (IOException e) {
         // ignore as this is expected
-        log.info("server " + hostname + ":" + port + " not up " + e);
+        log.info("server {}:{} not up {}", hostname, port, e.toString());
       }
 
       if (System.currentTimeMillis() > start + timeout) {

Reply via email to