This is an automated email from the ASF dual-hosted git repository. voonhous pushed a commit to branch release-1.2.1 in repository https://gitbox.apache.org/repos/asf/hudi.git
commit eb67451ea600d81a5aed2992a5d1c95f443c2425 Author: voonhous <[email protected]> AuthorDate: Sat Jul 4 11:50:45 2026 +0800 refactor(hadoop-common): use SLF4J parameterized logging instead of string concatenation (#19160) Convert log/LOG string concatenation to {} placeholders across hudi-hadoop-common (main + tests). Mechanical and behavior-preserving; the trailing throwable in HoodieParquetFileBinaryCopier stays the last arg so its stacktrace is logged as before. (cherry picked from commit 9a8edd6e6495ab0b0233d46f5f22ce933abc1993) --- .../apache/hudi/common/config/DFSPropertiesConfiguration.java | 4 ++-- .../apache/hudi/io/storage/hadoop/HoodieAvroHFileWriter.java | 2 +- .../apache/hudi/parquet/io/HoodieParquetFileBinaryCopier.java | 2 +- .../hudi/common/table/view/TestHoodieTableFileSystemView.java | 2 +- .../hudi/common/table/view/TestIncrementalFSViewSync.java | 10 +++++----- .../hudi/common/testutils/minicluster/HdfsTestService.java | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/hudi-hadoop-common/src/main/java/org/apache/hudi/common/config/DFSPropertiesConfiguration.java b/hudi-hadoop-common/src/main/java/org/apache/hudi/common/config/DFSPropertiesConfiguration.java index daabcf41dbb0..e048d269625f 100644 --- a/hudi-hadoop-common/src/main/java/org/apache/hudi/common/config/DFSPropertiesConfiguration.java +++ b/hudi-hadoop-common/src/main/java/org/apache/hudi/common/config/DFSPropertiesConfiguration.java @@ -194,7 +194,7 @@ public class DFSPropertiesConfiguration extends PropertiesConfig { visitedFilePaths.add(filePath.toString()); addPropsFromStream(reader, filePath); } catch (IOException ioe) { - log.error("Error reading in properties from dfs from file " + filePath); + log.error("Error reading in properties from dfs from file {}", filePath); throw new HoodieIOException("Cannot read properties from dfs from file " + filePath, ioe); } } @@ -279,7 +279,7 @@ public class DFSPropertiesConfiguration extends PropertiesConfig { private static Option<StoragePath> getConfPathFromEnv() { String confDir = System.getenv(CONF_FILE_DIR_ENV_NAME); if (confDir == null) { - log.debug("Environment variable " + CONF_FILE_DIR_ENV_NAME + ", not set. If desired, set it to the folder containing: " + DEFAULT_PROPERTIES_FILE); + log.debug("Environment variable {}, not set. If desired, set it to the folder containing: {}", CONF_FILE_DIR_ENV_NAME, DEFAULT_PROPERTIES_FILE); return Option.empty(); } if (StringUtils.isNullOrEmpty(URI.create(confDir).getScheme())) { diff --git a/hudi-hadoop-common/src/main/java/org/apache/hudi/io/storage/hadoop/HoodieAvroHFileWriter.java b/hudi-hadoop-common/src/main/java/org/apache/hudi/io/storage/hadoop/HoodieAvroHFileWriter.java index 9031390af1bb..864fbc9f80b0 100644 --- a/hudi-hadoop-common/src/main/java/org/apache/hudi/io/storage/hadoop/HoodieAvroHFileWriter.java +++ b/hudi-hadoop-common/src/main/java/org/apache/hudi/io/storage/hadoop/HoodieAvroHFileWriter.java @@ -133,7 +133,7 @@ public class HoodieAvroHFileWriter if (!this.hfileConfig.isAllowDuplicatesOnHfileWrites()) { // When allowDuplicatesOnHfileWrites is true, allow duplicates to be written to hFile. if (prevRecordKey.equals(recordKey)) { - LOG.info("Duplicate recordKey " + recordKey + " found while writing to HFile. Record payload " + record); + LOG.info("Duplicate recordKey {} found while writing to HFile. Record payload {}", recordKey, record); throw new HoodieDuplicateKeyException("Duplicate recordKey " + recordKey + " found while writing to HFile."); } } diff --git a/hudi-hadoop-common/src/main/java/org/apache/hudi/parquet/io/HoodieParquetFileBinaryCopier.java b/hudi-hadoop-common/src/main/java/org/apache/hudi/parquet/io/HoodieParquetFileBinaryCopier.java index fda8780a46c2..c2a8265573cc 100644 --- a/hudi-hadoop-common/src/main/java/org/apache/hudi/parquet/io/HoodieParquetFileBinaryCopier.java +++ b/hudi-hadoop-common/src/main/java/org/apache/hudi/parquet/io/HoodieParquetFileBinaryCopier.java @@ -315,7 +315,7 @@ public class HoodieParquetFileBinaryCopier extends HoodieParquetBinaryCopyBase i } return new PrefetchResult(targetBuffer, requiredSize); } catch (IOException e) { - log.error("Failed to prefetch file: " + fileToPrefetch, e); + log.error("Failed to prefetch file: {}", fileToPrefetch, e); throw new RuntimeException(e); } }, prefetchExecutor); diff --git a/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieTableFileSystemView.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieTableFileSystemView.java index ff9e303f7772..f89033fecae6 100644 --- a/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieTableFileSystemView.java +++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieTableFileSystemView.java @@ -1198,7 +1198,7 @@ public class TestHoodieTableFileSystemView extends HoodieCommonTestHarness { roView.getAllBaseFiles(partitionPath); fileSliceList = rtView.getLatestFileSlices(partitionPath).collect(Collectors.toList()); - log.info("FILESLICE LIST=" + fileSliceList); + log.info("FILESLICE LIST={}", fileSliceList); dataFiles = fileSliceList.stream().map(FileSlice::getBaseFile).filter(Option::isPresent).map(Option::get) .collect(Collectors.toList()); assertEquals(1, dataFiles.size(), "Expect only one data-files in latest view as there is only one file-group"); diff --git a/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestIncrementalFSViewSync.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestIncrementalFSViewSync.java index 6535f6be700e..0e6285f274e0 100644 --- a/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestIncrementalFSViewSync.java +++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestIncrementalFSViewSync.java @@ -527,7 +527,7 @@ public class TestIncrementalFSViewSync extends HoodieCommonTestHarness { final int netFilesAddedPerInstant = numFilesAddedPerInstant - numFilesReplacedPerInstant; assertEquals(newCleanerInstants.size(), cleanedInstants.size()); long exp = PARTITIONS.stream().mapToLong(p1 -> view.getAllFileSlices(p1).count()).findAny().getAsLong(); - log.info("Initial File Slices :" + exp); + log.info("Initial File Slices :{}", exp); for (int idx = 0; idx < newCleanerInstants.size(); idx++) { String instant = cleanedInstants.get(idx); try { @@ -544,8 +544,8 @@ public class TestIncrementalFSViewSync extends HoodieCommonTestHarness { assertEquals(State.COMPLETED, view.getLastInstant().get().getState()); assertEquals(HoodieTimeline.CLEAN_ACTION, view.getLastInstant().get().getAction()); PARTITIONS.forEach(p -> { - log.info("PARTITION : " + p); - log.info("\tFileSlices :" + view.getAllFileSlices(p).collect(Collectors.toList())); + log.info("PARTITION : {}", p); + log.info("\tFileSlices :{}", view.getAllFileSlices(p).collect(Collectors.toList())); }); final int instantIdx = newCleanerInstants.size() - idx; @@ -593,7 +593,7 @@ public class TestIncrementalFSViewSync extends HoodieCommonTestHarness { isDeltaCommit ? initialFileSlices : initialFileSlices - ((idx + 1) * (FILE_IDS_PER_PARTITION.size() - totalReplacedFileSlicesPerPartition)); view.sync(); assertTrue(view.getLastInstant().isPresent()); - log.info("Last Instant is :" + view.getLastInstant().get()); + log.info("Last Instant is :{}", view.getLastInstant().get()); if (isRestore) { assertEquals(newRestoreInstants.get(idx), view.getLastInstant().get().requestedTime()); assertEquals(HoodieTimeline.RESTORE_ACTION, view.getLastInstant().get().getAction()); @@ -881,7 +881,7 @@ public class TestIncrementalFSViewSync extends HoodieCommonTestHarness { int multiple = begin; for (int idx = 0; idx < instants.size(); idx++) { String instant = instants.get(idx); - log.info("Adding instant=" + instant); + log.info("Adding instant={}", instant); HoodieInstant lastInstant = lastInstants.get(idx); // Add a non-empty ingestion to COW table List<String> filePaths = addInstant(metaClient, instant, deltaCommit); diff --git a/hudi-hadoop-common/src/test/java/org/apache/hudi/common/testutils/minicluster/HdfsTestService.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/testutils/minicluster/HdfsTestService.java index 2a763b77c676..1a1bec072d9a 100644 --- a/hudi-hadoop-common/src/test/java/org/apache/hudi/common/testutils/minicluster/HdfsTestService.java +++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/testutils/minicluster/HdfsTestService.java @@ -63,7 +63,7 @@ public class HdfsTestService { // If clean, then remove the work dir so we can start fresh. if (format) { - log.info("Cleaning HDFS cluster data at: " + dfsBaseDirPath + " and starting fresh."); + log.info("Cleaning HDFS cluster data at: {} and starting fresh.", dfsBaseDirPath); Files.deleteIfExists(dfsBaseDirPath); } @@ -114,7 +114,7 @@ public class HdfsTestService { private static Configuration configureDFSCluster(Configuration config, String dfsBaseDir, String bindIP, int namenodeRpcPort, int datanodePort, int datanodeIpcPort, int datanodeHttpPort) { - log.info("HDFS force binding to ip: " + bindIP); + log.info("HDFS force binding to ip: {}", bindIP); config.set(DFSConfigKeys.FS_DEFAULT_NAME_KEY, "hdfs://" + bindIP + ":" + namenodeRpcPort); config.set(DFSConfigKeys.DFS_DATANODE_ADDRESS_KEY, bindIP + ":" + datanodePort); config.set(DFSConfigKeys.DFS_DATANODE_IPC_ADDRESS_KEY, bindIP + ":" + datanodeIpcPort);
