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 5241c4860c9aa9219ceae5f60535eed67b9959ad Author: voonhous <[email protected]> AuthorDate: Sun Jul 5 12:10:45 2026 +0800 refactor(client): use SLF4J parameterized logging instead of string concatenation (#19155) * refactor(client): use SLF4J parameterized logging instead of string concatenation Convert `+`-concatenated log messages to SLF4J `{}` placeholders across hudi-client (client-common, java-client, spark-client, flink-client). The rewrite is behaviour-preserving: each concatenated expression becomes a placeholder argument in order, and a trailing throwable is kept as the last argument so its stack trace is still recorded. This also avoids building the message string eagerly when the log level is disabled. * refactor(client): drop redundant .toString() in parameterized logs With {} templating SLF4J calls toString() lazily on the argument, so the explicit calls were redundant. Removed in TimelineArchiverV1, HoodieCompactionPlanGenerator and the matching TestLegacyArchivedMetaEntryReader log. Addresses review nits on #19155. * refactor(client): wrap long merge log statement for readability Keep the format string and its arguments on separate lines in HoodieBinaryCopyHandle.write() instead of one ~200-char line, per review. (cherry picked from commit 865a554be39e98bc9af0d1f2c4e29a99c401ecb4) --- .../org/apache/hudi/async/AsyncClusteringService.java | 2 +- .../org/apache/hudi/async/AsyncCompactService.java | 6 +++--- .../java/org/apache/hudi/async/HoodieAsyncService.java | 2 +- .../hudi/client/BaseHoodieTableServiceClient.java | 2 +- .../org/apache/hudi/client/CompactionAdminClient.java | 5 ++--- .../hudi/client/HoodieTableServiceManagerClient.java | 2 +- .../bootstrap/selector/BootstrapRegexModeSelector.java | 2 +- .../hudi/client/embedded/EmbeddedTimelineService.java | 2 +- .../timeline/versioning/v1/TimelineArchiverV1.java | 10 +++++----- ...ConcurrentFileWritesConflictResolutionStrategy.java | 3 +-- .../transaction/DirectMarkerTransactionManager.java | 10 ++++------ ...ConcurrentFileWritesConflictResolutionStrategy.java | 6 ++---- .../transaction/lock/FileSystemBasedLockProvider.java | 2 +- .../hudi/client/transaction/lock/LockManager.java | 2 +- .../org/apache/hudi/client/utils/TransactionUtils.java | 3 +-- .../client/validator/StreamingOffsetValidator.java | 2 +- .../execution/FileMetadataWriteStatusConverter.java | 2 +- .../hudi/index/bucket/ConsistentBucketIndexUtils.java | 4 ++-- .../apache/hudi/index/bucket/HoodieBucketIndex.java | 2 +- .../main/java/org/apache/hudi/io/BaseCreateHandle.java | 4 ++-- .../hudi/io/ExternalFileClusteringWriteHandle.java | 2 +- .../java/org/apache/hudi/io/HoodieAppendHandle.java | 2 +- .../org/apache/hudi/io/HoodieBinaryCopyHandle.java | 10 +++++----- .../src/main/java/org/apache/hudi/io/IOUtils.java | 2 +- ...HoodieBackedTableMetadataWriterTableVersionSix.java | 2 +- .../main/java/org/apache/hudi/table/HoodieTable.java | 6 +++--- .../strategy/CommitBasedClusteringPlanStrategy.java | 6 +++--- .../strategy/PartitionAwareClusteringPlanStrategy.java | 10 +++++----- .../table/action/commit/BaseCommitActionExecutor.java | 8 ++++---- .../compact/ScheduleCompactionActionExecutor.java | 4 ++-- .../plan/generators/HoodieCompactionPlanGenerator.java | 2 +- .../action/index/AbstractIndexingCatchupTask.java | 2 +- .../action/restore/BaseRestoreActionExecutor.java | 4 ++-- .../action/rollback/BaseRollbackActionExecutor.java | 6 +++--- .../rollback/CopyOnWriteRollbackActionExecutor.java | 6 +++--- .../action/rollback/ListingBasedRollbackStrategy.java | 2 +- .../rollback/MergeOnReadRollbackActionExecutor.java | 8 ++++---- .../table/marker/TimelineServerBasedWriteMarkers.java | 6 ++---- .../hudi/table/upgrade/FiveToSixUpgradeHandler.java | 4 ++-- .../apache/hudi/table/upgrade/UpgradeDowngrade.java | 2 +- .../utils/TestLegacyArchivedMetaEntryReader.java | 4 ++-- .../hudi/table/action/rollback/TestRollbackHelper.java | 2 +- .../hudi/testutils/HoodieWriteableTestTable.java | 2 +- .../hudi/client/HoodieFlinkTableServiceClient.java | 4 ++-- .../java/org/apache/hudi/io/FlinkCreateHandle.java | 2 +- .../hudi/io/storage/row/HoodieRowDataCreateHandle.java | 4 ++-- .../action/commit/FlinkPartitionTTLActionExecutor.java | 2 +- .../action/commit/BaseJavaCommitActionExecutor.java | 4 ++-- .../table/action/commit/JavaUpsertPartitioner.java | 18 ++++++++---------- .../deltacommit/BaseJavaDeltaCommitActionExecutor.java | 4 ++-- .../hudi/client/TestJavaHoodieBackedMetadata.java | 12 ++++++------ .../commit/TestJavaCopyOnWriteActionExecutor.java | 2 +- .../hudi/testutils/HoodieJavaClientTestHarness.java | 2 +- .../SparkBinaryCopyClusteringExecutionStrategy.java | 2 +- .../SparkExternalFileClusteringExecutionStrategy.java | 2 +- .../hudi/client/validator/SparkPreCommitValidator.java | 2 +- .../validator/SqlQueryEqualityPreCommitValidator.java | 8 ++++---- .../SqlQueryInequalityPreCommitValidator.java | 8 ++++---- .../SqlQuerySingleResultPreCommitValidator.java | 4 ++-- .../hudi/io/storage/row/HoodieRowCreateHandle.java | 2 +- .../action/bootstrap/BaseBootstrapMetadataHandler.java | 2 +- .../bootstrap/SparkBootstrapCommitActionExecutor.java | 8 +++----- .../TestHoodieSparkEngineDynamicRepartition.java | 2 +- .../org/apache/hudi/io/TestHoodieTimelineArchiver.java | 2 +- .../marker/TestTimelineServerBasedWriteMarkers.java | 4 ++-- 65 files changed, 131 insertions(+), 144 deletions(-) diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/async/AsyncClusteringService.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/async/AsyncClusteringService.java index 2bcd851208fb..2e2588ed28e4 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/async/AsyncClusteringService.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/async/AsyncClusteringService.java @@ -71,7 +71,7 @@ public abstract class AsyncClusteringService extends HoodieAsyncTableService { return Pair.of(CompletableFuture.allOf(IntStream.range(0, maxConcurrentClustering).mapToObj(i -> CompletableFuture.supplyAsync(() -> { try { // Set Compactor Pool Name for allowing users to prioritize compaction - log.info("Setting pool name for clustering to " + CLUSTERING_POOL_NAME); + log.info("Setting pool name for clustering to {}", CLUSTERING_POOL_NAME); context.setProperty(EngineProperty.CLUSTERING_POOL_NAME, CLUSTERING_POOL_NAME); while (!isShutdownRequested()) { final String instant = fetchNextAsyncServiceInstant(); diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/async/AsyncCompactService.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/async/AsyncCompactService.java index 52088d8d683e..6298c01e4ded 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/async/AsyncCompactService.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/async/AsyncCompactService.java @@ -71,16 +71,16 @@ public abstract class AsyncCompactService extends HoodieAsyncTableService { return Pair.of(CompletableFuture.allOf(IntStream.range(0, maxConcurrentCompaction).mapToObj(i -> CompletableFuture.supplyAsync(() -> { try { // Set Compactor Pool Name for allowing users to prioritize compaction - log.info("Setting pool name for compaction to " + COMPACT_POOL_NAME); + log.info("Setting pool name for compaction to {}", COMPACT_POOL_NAME); context.setProperty(EngineProperty.COMPACTION_POOL_NAME, COMPACT_POOL_NAME); while (!isShutdownRequested()) { final String instantTime = fetchNextAsyncServiceInstant(); if (null != instantTime) { - log.info("Starting Compaction for instant " + instantTime); + log.info("Starting Compaction for instant {}", instantTime); compactor.compact(instantTime); - log.info("Finished Compaction for instant " + instantTime); + log.info("Finished Compaction for instant {}", instantTime); } } log.info("Compactor shutting down properly!!"); diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/async/HoodieAsyncService.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/async/HoodieAsyncService.java index 917156af89a0..4f207b026e88 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/async/HoodieAsyncService.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/async/HoodieAsyncService.java @@ -186,7 +186,7 @@ public abstract class HoodieAsyncService implements Serializable { * @param instantTime {@link String} to enqueue. */ public void enqueuePendingAsyncServiceInstant(String instantTime) { - log.info("Enqueuing new pending table service instant: " + instantTime); + log.info("Enqueuing new pending table service instant: {}", instantTime); pendingInstants.add(instantTime); } diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/BaseHoodieTableServiceClient.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/BaseHoodieTableServiceClient.java index 01105c8bd8d7..739e11933a38 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/BaseHoodieTableServiceClient.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/BaseHoodieTableServiceClient.java @@ -1432,7 +1432,7 @@ public abstract class BaseHoodieTableServiceClient<I, T, O> extends BaseHoodieCl case CLEAN: return tableServiceManagerClient.executeClean(); default: - log.info("Not supported delegate to table service manager, tableServiceType : " + tableServiceType.getAction()); + log.info("Not supported delegate to table service manager, tableServiceType : {}", tableServiceType.getAction()); return Option.empty(); } } diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/CompactionAdminClient.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/CompactionAdminClient.java index 32be4b274139..6abe10c6cca7 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/CompactionAdminClient.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/CompactionAdminClient.java @@ -299,13 +299,12 @@ public class CompactionAdminClient extends BaseHoodieClient { context.setJobStatus(this.getClass().getSimpleName(), "Execute unschedule operations: " + config.getTableName()); return context.map(renameActions, lfPair -> { try { - log.info("RENAME " + lfPair.getLeft().getPath() + " => " + lfPair.getRight().getPath()); + log.info("RENAME {} => {}", lfPair.getLeft().getPath(), lfPair.getRight().getPath()); renameLogFile(metaClient, lfPair.getLeft(), lfPair.getRight()); return new RenameOpResult(lfPair, true, Option.empty()); } catch (IOException e) { log.error("Error renaming log file", e); - log.error("\n\n\n***NOTE Compaction is in inconsistent state. Try running \"compaction repair " - + lfPair.getLeft().getDeltaCommitTime() + "\" to recover from failure ***\n\n\n"); + log.error("\n\n\n***NOTE Compaction is in inconsistent state. Try running \"compaction repair {}\" to recover from failure ***\n\n\n", lfPair.getLeft().getDeltaCommitTime()); return new RenameOpResult(lfPair, false, Option.of(e)); } }, parallelism); diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/HoodieTableServiceManagerClient.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/HoodieTableServiceManagerClient.java index 4f13034c89df..ec7dd1b30b0e 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/HoodieTableServiceManagerClient.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/HoodieTableServiceManagerClient.java @@ -93,7 +93,7 @@ public class HoodieTableServiceManagerClient { queryParameters.forEach(builder::addParameter); String url = builder.toString(); - log.info("Sending request to table management service : (" + url + ")"); + log.info("Sending request to table management service : ({})", url); int timeoutMs = this.config.getConnectionTimeoutSec() * 1000; int requestRetryLimit = config.getConnectionRetryLimit(); int connectionRetryDelay = config.getConnectionRetryDelay(); diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/bootstrap/selector/BootstrapRegexModeSelector.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/bootstrap/selector/BootstrapRegexModeSelector.java index 65fda8e6cf7d..6869016cf885 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/bootstrap/selector/BootstrapRegexModeSelector.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/bootstrap/selector/BootstrapRegexModeSelector.java @@ -48,7 +48,7 @@ public class BootstrapRegexModeSelector extends BootstrapModeSelector { this.bootstrapModeOnMatch = writeConfig.getBootstrapModeForRegexMatch(); this.defaultMode = BootstrapMode.FULL_RECORD.equals(bootstrapModeOnMatch) ? BootstrapMode.METADATA_ONLY : BootstrapMode.FULL_RECORD; - log.info("Default Mode :" + defaultMode + ", on Match Mode :" + bootstrapModeOnMatch); + log.info("Default Mode :{}, on Match Mode :{}", defaultMode, bootstrapModeOnMatch); } @Override diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/embedded/EmbeddedTimelineService.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/embedded/EmbeddedTimelineService.java index 2df9d0940d5b..7caeab7ead3d 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/embedded/EmbeddedTimelineService.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/embedded/EmbeddedTimelineService.java @@ -97,7 +97,7 @@ public class EmbeddedTimelineService { synchronized (SERVICE_LOCK) { if (RUNNING_SERVICES.containsKey(timelineServiceIdentifier)) { RUNNING_SERVICES.get(timelineServiceIdentifier).addBasePath(writeConfig.getBasePath()); - log.info("Reusing existing embedded timeline server with configuration: " + RUNNING_SERVICES.get(timelineServiceIdentifier).serviceConfig); + log.info("Reusing existing embedded timeline server with configuration: {}", RUNNING_SERVICES.get(timelineServiceIdentifier).serviceConfig); return RUNNING_SERVICES.get(timelineServiceIdentifier); } // if no compatible instance is found, create a new one diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/timeline/versioning/v1/TimelineArchiverV1.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/timeline/versioning/v1/TimelineArchiverV1.java index bab78324d7de..579b2a8c6c87 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/timeline/versioning/v1/TimelineArchiverV1.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/timeline/versioning/v1/TimelineArchiverV1.java @@ -359,7 +359,7 @@ public class TimelineArchiverV1<T extends HoodieAvroPayload, I, K, O> implements log.info("Not archiving as there is no compaction yet on the metadata table"); instants = Stream.empty(); } else { - log.info("Limiting archiving of instants to latest compaction on metadata table at " + latestCompactionTime.get()); + log.info("Limiting archiving of instants to latest compaction on metadata table at {}", latestCompactionTime.get()); instants = instants.filter(instant -> compareTimestamps(instant.requestedTime(), LESSER_THAN, latestCompactionTime.get())); } @@ -419,7 +419,7 @@ public class TimelineArchiverV1<T extends HoodieAvroPayload, I, K, O> implements } private boolean deleteArchivedInstants(List<HoodieInstant> archivedInstants, HoodieEngineContext context) throws IOException { - log.info("Deleting instants " + archivedInstants); + log.info("Deleting instants {}", archivedInstants); List<HoodieInstant> pendingInstants = new ArrayList<>(); List<HoodieInstant> completedInstants = new ArrayList<>(); @@ -463,7 +463,7 @@ public class TimelineArchiverV1<T extends HoodieAvroPayload, I, K, O> implements public void archive(HoodieEngineContext context, List<HoodieInstant> instants) throws HoodieCommitException { try { Schema wrapperSchema = HoodieArchivedMetaEntry.getClassSchema(); - log.info("Wrapper schema " + wrapperSchema.toString()); + log.info("Wrapper schema {}", wrapperSchema); List<IndexedRecord> records = new ArrayList<>(); for (HoodieInstant hoodieInstant : instants) { try { @@ -474,7 +474,7 @@ public class TimelineArchiverV1<T extends HoodieAvroPayload, I, K, O> implements } } catch (Exception e) { InstantFileNameGenerator fileNameFactory = new InstantFileNameGeneratorV1(); - log.error("Failed to archive commits, .commit file: " + fileNameFactory.getFileName(hoodieInstant), e); + log.error("Failed to archive commits, .commit file: {}", fileNameFactory.getFileName(hoodieInstant), e); if (this.config.isFailOnTimelineArchivingEnabled()) { throw e; } @@ -489,7 +489,7 @@ public class TimelineArchiverV1<T extends HoodieAvroPayload, I, K, O> implements private void deleteAnyLeftOverMarkers(HoodieEngineContext context, HoodieInstant instant) { WriteMarkers writeMarkers = WriteMarkersFactory.get(config.getMarkersType(), table, instant.requestedTime()); if (writeMarkers.deleteMarkerDir(context, config.getMarkersDeleteParallelism())) { - log.info("Cleaned up left over marker directory for instant :" + instant); + log.info("Cleaned up left over marker directory for instant :{}", instant); } } diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/BucketIndexConcurrentFileWritesConflictResolutionStrategy.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/BucketIndexConcurrentFileWritesConflictResolutionStrategy.java index 54112abd75eb..01b071f714a1 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/BucketIndexConcurrentFileWritesConflictResolutionStrategy.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/BucketIndexConcurrentFileWritesConflictResolutionStrategy.java @@ -51,8 +51,7 @@ public class BucketIndexConcurrentFileWritesConflictResolutionStrategy Set<String> intersection = new HashSet<>(partitionBucketIdSetForFirstInstant); intersection.retainAll(partitionBucketIdSetForSecondInstant); if (!intersection.isEmpty()) { - log.info("Found conflicting writes between first operation = " + thisOperation - + ", second operation = " + otherOperation + " , intersecting bucket ids " + intersection); + log.info("Found conflicting writes between first operation = {}, second operation = {} , intersecting bucket ids {}", thisOperation, otherOperation, intersection); return true; } return false; diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/DirectMarkerTransactionManager.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/DirectMarkerTransactionManager.java index 02b027f12d31..90c5e963da1e 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/DirectMarkerTransactionManager.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/DirectMarkerTransactionManager.java @@ -48,22 +48,20 @@ public class DirectMarkerTransactionManager extends TransactionManager { public void beginTransaction(String newTxnOwnerInstantTime, InstantGenerator instantGenerator) { if (isLockRequired) { - LOG.info("Transaction starting for " + newTxnOwnerInstantTime + " and " + filePath); + LOG.info("Transaction starting for {} and {}", newTxnOwnerInstantTime, filePath); lockManager.lock(); reset(changeActionInstant, Option.of(getInstant(newTxnOwnerInstantTime, instantGenerator)), Option.empty()); - LOG.info("Transaction started for " + newTxnOwnerInstantTime + " and " + filePath); + LOG.info("Transaction started for {} and {}", newTxnOwnerInstantTime, filePath); } } public void endTransaction(String currentTxnOwnerInstantTime, InstantGenerator instantGenerator) { if (isLockRequired) { - LOG.info("Transaction ending with transaction owner " + currentTxnOwnerInstantTime - + " for " + filePath); + LOG.info("Transaction ending with transaction owner {} for {}", currentTxnOwnerInstantTime, filePath); if (reset(Option.of(getInstant(currentTxnOwnerInstantTime, instantGenerator)), Option.empty(), Option.empty())) { lockManager.unlock(); - LOG.info("Transaction ended with transaction owner " + currentTxnOwnerInstantTime - + " for " + filePath); + LOG.info("Transaction ended with transaction owner {} for {}", currentTxnOwnerInstantTime, filePath); } } } diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/SimpleConcurrentFileWritesConflictResolutionStrategy.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/SimpleConcurrentFileWritesConflictResolutionStrategy.java index e2eaa5310303..0d6327272a19 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/SimpleConcurrentFileWritesConflictResolutionStrategy.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/SimpleConcurrentFileWritesConflictResolutionStrategy.java @@ -142,8 +142,7 @@ public class SimpleConcurrentFileWritesConflictResolutionStrategy Set<Pair<String, String>> intersection = new HashSet<>(partitionAndFileIdsSetForFirstInstant); intersection.retainAll(partitionAndFileIdsSetForSecondInstant); if (!intersection.isEmpty()) { - log.info("Found conflicting writes between first operation = " + thisOperation - + ", second operation = " + otherOperation + " , intersecting file ids " + intersection); + log.info("Found conflicting writes between first operation = {}, second operation = {} , intersecting file ids {}", thisOperation, otherOperation, intersection); return true; } return false; @@ -163,8 +162,7 @@ public class SimpleConcurrentFileWritesConflictResolutionStrategy String rolledbackCommit = otherOperation.getRolledbackCommit(); String thisCommitTimestamp = thisOperation.getInstantTimestamp(); if (rolledbackCommit != null && rolledbackCommit.equals(thisCommitTimestamp)) { - log.error("Found rollback conflict: rollback operation " + otherOperation - + " is rolling back commit " + thisCommitTimestamp + " created by operation " + thisOperation); + log.error("Found rollback conflict: rollback operation {} is rolling back commit {} created by operation {}", otherOperation, thisCommitTimestamp, thisOperation); return true; } } diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/lock/FileSystemBasedLockProvider.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/lock/FileSystemBasedLockProvider.java index fa7fde517508..235f254cd914 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/lock/FileSystemBasedLockProvider.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/lock/FileSystemBasedLockProvider.java @@ -169,7 +169,7 @@ public class FileSystemBasedLockProvider implements LockProvider<String>, Serial return true; } } catch (IOException | HoodieIOException e) { - log.error(generateLogStatement(LockState.ALREADY_RELEASED) + " failed to get lockFile's modification time", e); + log.error("{} failed to get lockFile's modification time", generateLogStatement(LockState.ALREADY_RELEASED), e); } return false; } diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/lock/LockManager.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/lock/LockManager.java index 21eb5da61575..6be1ebd7c911 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/lock/LockManager.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/lock/LockManager.java @@ -109,7 +109,7 @@ public class LockManager implements Serializable, AutoCloseable { public synchronized LockProvider getLockProvider() { // Perform lazy initialization of lock provider only if needed if (lockProvider == null) { - log.info("LockProvider " + writeConfig.getLockProviderClass()); + log.info("LockProvider {}", writeConfig.getLockProviderClass()); // Try to load lock provider with HoodieLockMetrics constructor first Class<?>[] metricsConstructorTypes = {LockConfiguration.class, StorageConfiguration.class, HoodieLockMetrics.class}; diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/utils/TransactionUtils.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/utils/TransactionUtils.java index 6b5ac8c575aa..cca0486799fd 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/utils/TransactionUtils.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/utils/TransactionUtils.java @@ -89,8 +89,7 @@ public class TransactionUtils { try { ConcurrentOperation otherOperation = new ConcurrentOperation(instant, table.getMetaClient()); if (resolutionStrategy.hasConflict(thisOperation, otherOperation)) { - log.info("Conflict encountered between current instant = " + thisOperation + " and instant = " - + otherOperation + ", attempting to resolve it..."); + log.info("Conflict encountered between current instant = {} and instant = {}, attempting to resolve it...", thisOperation, otherOperation); resolutionStrategy.resolveConflict(table, thisOperation, otherOperation); } } catch (IOException io) { diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/validator/StreamingOffsetValidator.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/validator/StreamingOffsetValidator.java index 40e7a4f1635f..0313d57c30c7 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/validator/StreamingOffsetValidator.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/validator/StreamingOffsetValidator.java @@ -210,7 +210,7 @@ public abstract class StreamingOffsetValidator extends BasePreCommitValidator { previousCheckpoint, currentCheckpoint); if (failurePolicy == ValidationFailurePolicy.WARN_LOG) { - log.warn(errorMsg + " (failure policy is WARN_LOG, commit will proceed)"); + log.warn("{} (failure policy is WARN_LOG, commit will proceed)", errorMsg); } else { throw new HoodieValidationException(errorMsg); } diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/execution/FileMetadataWriteStatusConverter.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/execution/FileMetadataWriteStatusConverter.java index 51ac55cd5dc4..8e96b28adc3b 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/execution/FileMetadataWriteStatusConverter.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/execution/FileMetadataWriteStatusConverter.java @@ -60,7 +60,7 @@ public class FileMetadataWriteStatusConverter<T extends HoodieRecordPayload, I, */ public WriteStatus convert(String parquetFile, String partitionPath, Map<String, Object> executionConfigs) throws IOException { - LOG.info("Creating write status for parquet file " + parquetFile); + LOG.info("Creating write status for parquet file {}", parquetFile); WriteStatus writeStatus = (WriteStatus) ReflectionUtils.loadClass(this.writeConfig.getWriteStatusClassName(), this.hoodieTable.shouldTrackSuccessRecords(), this.writeConfig.getWriteStatusFailureFraction(), this.hoodieTable.isMetadataTable()); StoragePath parquetFilePath = new StoragePath(parquetFile); diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/index/bucket/ConsistentBucketIndexUtils.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/index/bucket/ConsistentBucketIndexUtils.java index 5d02de2cbcfd..b522a77af83c 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/index/bucket/ConsistentBucketIndexUtils.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/index/bucket/ConsistentBucketIndexUtils.java @@ -175,7 +175,7 @@ public class ConsistentBucketIndexUtils { } catch (FileNotFoundException e) { return Option.empty(); } catch (IOException e) { - log.error("Error when loading hashing metadata, partition: " + partition, e); + log.error("Error when loading hashing metadata, partition: {}", partition, e); throw new HoodieIndexException("Error while loading hashing metadata", e); } } @@ -258,7 +258,7 @@ public class ConsistentBucketIndexUtils { } catch (FileNotFoundException e) { return Option.empty(); } catch (IOException e) { - log.error("Error when loading hashing metadata, for path: " + metaFile.getPath().getName(), e); + log.error("Error when loading hashing metadata, for path: {}", metaFile.getPath().getName(), e); throw new HoodieIndexException("Error while loading hashing metadata", e); } } diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/index/bucket/HoodieBucketIndex.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/index/bucket/HoodieBucketIndex.java index 7b9c28b46216..be61454fae36 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/index/bucket/HoodieBucketIndex.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/index/bucket/HoodieBucketIndex.java @@ -58,7 +58,7 @@ public abstract class HoodieBucketIndex extends HoodieIndex<Object, Object> { this.numBuckets = config.getBucketIndexNumBuckets(); this.indexKeyFields = KeyGenUtils.getIndexKeyFields(config.getBucketIndexHashField()); - log.info("Use bucket index, numBuckets = " + numBuckets + ", indexFields: " + indexKeyFields); + log.info("Use bucket index, numBuckets = {}, indexFields: {}", numBuckets, indexKeyFields); } @Override diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/BaseCreateHandle.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/BaseCreateHandle.java index 8144ae4c2f85..e24da085a613 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/BaseCreateHandle.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/BaseCreateHandle.java @@ -117,7 +117,7 @@ public abstract class BaseCreateHandle<T, I, K, O> extends HoodieWriteHandle<T, // record successful. record.deflate(); } catch (Throwable t) { - log.error("Error writing record " + record, t); + log.error("Error writing record {}", record, t); if (!config.getIgnoreWriteFailed()) { throw new HoodieException(t.getMessage(), t); } @@ -178,7 +178,7 @@ public abstract class BaseCreateHandle<T, I, K, O> extends HoodieWriteHandle<T, */ @Override public List<WriteStatus> close() { - log.info("Closing the file " + writeStatus.getFileId() + " as we are done with all the records " + recordsWritten); + log.info("Closing the file {} as we are done with all the records {}", writeStatus.getFileId(), recordsWritten); try { if (isClosed()) { // Handle has already been closed diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/ExternalFileClusteringWriteHandle.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/ExternalFileClusteringWriteHandle.java index 9c9a5a3f0ba1..f947ff9bc2b9 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/ExternalFileClusteringWriteHandle.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/ExternalFileClusteringWriteHandle.java @@ -62,7 +62,7 @@ public class ExternalFileClusteringWriteHandle<T extends HoodieRecordPayload, I, // Create inProgress marker file createMarkerFile(partitionPath, path.getName()); - LOG.info("New ExternalFileClusteringWriteHandle for partition :" + partitionPath + " with fileId " + fileId); + LOG.info("New ExternalFileClusteringWriteHandle for partition :{} with fileId {}", partitionPath, fileId); } /** diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/HoodieAppendHandle.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/HoodieAppendHandle.java index b6389d9122f0..b179bd3ea5bf 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/HoodieAppendHandle.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/HoodieAppendHandle.java @@ -260,7 +260,7 @@ public class HoodieAppendHandle<T, I, K, O> extends HoodieWriteHandle<T, I, K, O ? getInstantTimeForLogFile(record) : deltaWriteStat.getPrevCommit(); this.writer = createLogWriter(instantTime, fileSliceOpt); } catch (Exception e) { - log.error("Error in update task at commit " + instantTime, e); + log.error("Error in update task at commit {}", instantTime, e); writeStatus.setGlobalError(e); throw new HoodieUpsertException("Failed to initialize HoodieAppendHandle for FileId: " + fileId + " on commit " + instantTime + " on storage path " + hoodieTable.getMetaClient().getBasePath() + "/" + partitionPath, e); diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/HoodieBinaryCopyHandle.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/HoodieBinaryCopyHandle.java index 94a86f1f9476..fa7baab2af15 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/HoodieBinaryCopyHandle.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/HoodieBinaryCopyHandle.java @@ -70,7 +70,7 @@ public class HoodieBinaryCopyHandle<T, I, K, O> extends HoodieWriteHandle<T, I, try { ParquetUtils parquetUtils = new ParquetUtils(); MessageType fileSchema = parquetUtils.readMessageType(table.getStorage(), inputFiles.get(0)); - log.info("Binary copy schema evolution disabled. Using schema from input file: " + inputFiles.get(0)); + log.info("Binary copy schema evolution disabled. Using schema from input file: {}", inputFiles.get(0)); return fileSchema; } catch (Exception e) { log.error("Failed to read schema from input file", e); @@ -109,8 +109,8 @@ public class HoodieBinaryCopyHandle<T, I, K, O> extends HoodieWriteHandle<T, I, } public void write() { - log.info("Start to merge source files " + this.inputFiles + " into target file: " + this.path - + ". Please pay attention that we will not rolling files based on max-file-size config during binary copy."); + log.info("Start to merge source files {} into target file: {}. Please pay attention that we will not rolling files based on max-file-size config during binary copy.", + this.inputFiles, this.path); HoodieTimer timer = HoodieTimer.start(); long records = 0; try { @@ -123,12 +123,12 @@ public class HoodieBinaryCopyHandle<T, I, K, O> extends HoodieWriteHandle<T, I, this.recordsWritten = records; this.insertRecordsWritten = records; } - log.info("Finish rewriting " + this.path + ". Using " + timer.endTimer() + " mills"); + log.info("Finish rewriting {}. Using {} mills", this.path, timer.endTimer()); } @Override public List<WriteStatus> close() { - log.info("Closing the file " + writeStatus.getFileId() + " as we are done with all the records " + recordsWritten); + log.info("Closing the file {} as we are done with all the records {}", writeStatus.getFileId(), recordsWritten); try { this.writer.close(); diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/IOUtils.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/IOUtils.java index e67cc98e5017..778feffa51f8 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/IOUtils.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/IOUtils.java @@ -122,7 +122,7 @@ public class IOUtils { // TODO(vc): This needs to be revisited if (mergeHandle.getPartitionPath() == null) { - log.info("Upsert Handle has partition path as null " + mergeHandle.getOldFilePath() + ", " + mergeHandle.getWriteStatuses()); + log.info("Upsert Handle has partition path as null {}, {}", mergeHandle.getOldFilePath(), mergeHandle.getWriteStatuses()); } return Collections.singletonList(mergeHandle.close()).iterator(); diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metadata/HoodieBackedTableMetadataWriterTableVersionSix.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metadata/HoodieBackedTableMetadataWriterTableVersionSix.java index 2d4717a80054..eb09e9a12b7e 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metadata/HoodieBackedTableMetadataWriterTableVersionSix.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metadata/HoodieBackedTableMetadataWriterTableVersionSix.java @@ -237,7 +237,7 @@ public abstract class HoodieBackedTableMetadataWriterTableVersionSix<I, O> exten String rollbackInstantTime = createRollbackTimestamp(instantTime); if (metadataMetaClient.getActiveTimeline().containsInstant(deltaCommitInstant)) { - LOG.info("Rolling back MDT deltacommit " + commitToRollbackInstantTime); + LOG.info("Rolling back MDT deltacommit {}", commitToRollbackInstantTime); if (!getWriteClient().rollback(commitToRollbackInstantTime, rollbackInstantTime)) { throw new HoodieMetadataException("Failed to rollback deltacommit at " + commitToRollbackInstantTime); } diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/HoodieTable.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/HoodieTable.java index a857ef4417d6..f0d6d746bd3f 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/HoodieTable.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/HoodieTable.java @@ -757,7 +757,7 @@ public abstract class HoodieTable<T, I, K, O> implements Serializable { .collect(Collectors.toList()), partitionFilePair -> { final HoodieStorage storage = metaClient.getStorage(); - log.info("Deleting invalid data file=" + partitionFilePair); + log.info("Deleting invalid data file={}", partitionFilePair); // Delete try { StoragePath pathToDelete = new StoragePath(partitionFilePair.getValue()); @@ -828,7 +828,7 @@ public abstract class HoodieTable<T, I, K, O> implements Serializable { throw new HoodieDuplicateDataFileDetectedException("Duplicate data files detected " + invalidDataPaths); } - log.info("Removing duplicate files created due to task retries before committing. Paths=" + invalidDataPaths); + log.info("Removing duplicate files created due to task retries before committing. Paths={}", invalidDataPaths); Map<String, List<Pair<String, String>>> invalidPathsByPartition = invalidDataPaths.stream() .map(dp -> Pair.of(new StoragePath(basePath, dp).getParent().toString(), @@ -1146,7 +1146,7 @@ public abstract class HoodieTable<T, I, K, O> implements Serializable { Stream.of(MetadataPartitionType.getValidValues()).forEach(partitionType -> { if (shouldDeleteMetadataPartition(partitionType)) { try { - log.info("Deleting metadata partition because it is disabled in writer: " + partitionType.name()); + log.info("Deleting metadata partition because it is disabled in writer: {}", partitionType.name()); if (metadataPartitionExists(metaClient.getBasePath(), context, partitionType.getPartitionPath())) { deleteMetadataPartition(metaClient.getBasePath(), context, partitionType.getPartitionPath()); } diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/cluster/strategy/CommitBasedClusteringPlanStrategy.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/cluster/strategy/CommitBasedClusteringPlanStrategy.java index 1c1a7d7ccb3a..d825ac471e68 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/cluster/strategy/CommitBasedClusteringPlanStrategy.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/cluster/strategy/CommitBasedClusteringPlanStrategy.java @@ -86,7 +86,7 @@ public class CommitBasedClusteringPlanStrategy<T, I, K, O> extends PartitionAwar LOG.error("earliest commit to cluster is not specified"); return Option.empty(); } - LOG.info("Earliest commit to cluster (exclusive): " + earliestCommit); + LOG.info("Earliest commit to cluster (exclusive): {}", earliestCommit); HoodieTimeline commitTimeline = metaClient.getCommitsTimeline().findInstantsAfter(earliestCommit).filterCompletedInstants(); // For each completed commit, invoke getFileSlicesEligibleForCommitBasedClustering @@ -247,7 +247,7 @@ public class CommitBasedClusteringPlanStrategy<T, I, K, O> extends PartitionAwar try { commitMetadata = TimelineUtils.getCommitMetadata(instant, metaClient.getActiveTimeline()); } catch (IOException e) { - LOG.error("Failed to read commit metadata for instant: " + instant, e); + LOG.error("Failed to read commit metadata for instant: {}", instant, e); throw new HoodieException("Failed to read commit metadata for instant: " + instant, e); } } else { @@ -285,7 +285,7 @@ public class CommitBasedClusteringPlanStrategy<T, I, K, O> extends PartitionAwar try { pathInfo = storage.getPathInfo(path); } catch (Exception e) { - LOG.error("Could not get PathInfo for file path: " + path, e); + LOG.error("Could not get PathInfo for file path: {}", path, e); throw new HoodieException("Could not get PathInfo for file path: " + path, e); } diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/cluster/strategy/PartitionAwareClusteringPlanStrategy.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/cluster/strategy/PartitionAwareClusteringPlanStrategy.java index 3d49c5f406e1..fc24e7be26a6 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/cluster/strategy/PartitionAwareClusteringPlanStrategy.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/cluster/strategy/PartitionAwareClusteringPlanStrategy.java @@ -82,15 +82,15 @@ public abstract class PartitionAwareClusteringPlanStrategy<T,I,K,O> extends Clus // check if max size is reached and create new group, if needed. if (totalSizeSoFar + currentSize > writeConfig.getClusteringMaxBytesInGroup() && !currentGroup.isEmpty()) { int numOutputGroups = getNumberOfOutputFileGroups(totalSizeSoFar, writeConfig.getClusteringTargetFileMaxBytes()); - log.info("Adding one clustering group " + totalSizeSoFar + " max bytes: " - + writeConfig.getClusteringMaxBytesInGroup() + " num input slices: " + currentGroup.size() + " output groups: " + numOutputGroups); + log.info("Adding one clustering group {} max bytes: {} num input slices: {} output groups: {}", + totalSizeSoFar, writeConfig.getClusteringMaxBytesInGroup(), currentGroup.size(), numOutputGroups); fileSliceGroups.add(Pair.of(currentGroup, numOutputGroups)); currentGroup = new ArrayList<>(); totalSizeSoFar = 0; // if fileSliceGroups's size reach the max group, stop loop if (fileSliceGroups.size() >= writeConfig.getClusteringMaxNumGroups()) { - log.info("Having generated the maximum number of groups : " + writeConfig.getClusteringMaxNumGroups()); + log.info("Having generated the maximum number of groups : {}", writeConfig.getClusteringMaxNumGroups()); partialScheduled = true; break; } @@ -104,8 +104,8 @@ public abstract class PartitionAwareClusteringPlanStrategy<T,I,K,O> extends Clus if (!currentGroup.isEmpty()) { int numOutputGroups = getNumberOfOutputFileGroups(totalSizeSoFar, writeConfig.getClusteringTargetFileMaxBytes()); - log.info("Adding final clustering group " + totalSizeSoFar + " max bytes: " - + writeConfig.getClusteringMaxBytesInGroup() + " num input slices: " + currentGroup.size() + " output groups: " + numOutputGroups); + log.info("Adding final clustering group {} max bytes: {} num input slices: {} output groups: {}", + totalSizeSoFar, writeConfig.getClusteringMaxBytesInGroup(), currentGroup.size(), numOutputGroups); fileSliceGroups.add(Pair.of(currentGroup, numOutputGroups)); } diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/commit/BaseCommitActionExecutor.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/commit/BaseCommitActionExecutor.java index ff9fcb866692..c7e7f0287ac1 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/commit/BaseCommitActionExecutor.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/commit/BaseCommitActionExecutor.java @@ -188,7 +188,7 @@ public abstract class BaseCommitActionExecutor<T, I, K, O, R> initializeLastCompletedTnxAndPendingInstants(); } autoCommit(result); - log.info("Completed commit for " + instantTime); + log.info("Completed commit for {}", instantTime); } protected void autoCommit(HoodieWriteMetadata<O> result) { @@ -216,7 +216,7 @@ public abstract class BaseCommitActionExecutor<T, I, K, O, R> protected void commit(HoodieWriteMetadata<O> result, List<HoodieWriteStat> writeStats) { String actionType = getCommitActionType(); - log.info("Committing " + instantTime + ", action Type " + actionType + ", operation Type " + operationType); + log.info("Committing {}, action Type {}, operation Type {}", instantTime, actionType, operationType); result.setCommitted(true); result.setWriteStats(writeStats); // Finalize write @@ -234,7 +234,7 @@ public abstract class BaseCommitActionExecutor<T, I, K, O, R> activeTimeline.saveAsComplete(false, table.getMetaClient().createNewInstant(State.INFLIGHT, actionType, instantTime), Option.of(metadata), completedInstant -> table.getMetaClient().getTableFormat().commit(metadata, completedInstant, table.getContext(), table.getMetaClient(), table.getViewManager())); - log.info("Committed " + instantTime); + log.info("Committed {}", instantTime); result.setCommitMetadata(Option.of(metadata)); // update cols to Index as applicable HoodieColumnStatsIndexUtils.updateColsToIndex(table, config, metadata, actionType, @@ -308,7 +308,7 @@ public abstract class BaseCommitActionExecutor<T, I, K, O, R> writeMetadata.setWriteStatuses(statuses); - log.debug("Create place holder commit metadata for clustering with instant time " + instantTime); + log.debug("Create place holder commit metadata for clustering with instant time {}", instantTime); HoodieCommitMetadata commitMetadata = CommitUtils.buildMetadata(Collections.emptyList(), Collections.emptyMap(), extraMetadata, operationType, schema.get().toString(), getCommitActionType()); writeMetadata.setCommitMetadata(Option.of(commitMetadata)); diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/compact/ScheduleCompactionActionExecutor.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/compact/ScheduleCompactionActionExecutor.java index 298beb15b7e0..6f03b69dcb04 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/compact/ScheduleCompactionActionExecutor.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/compact/ScheduleCompactionActionExecutor.java @@ -124,11 +124,11 @@ public class ScheduleCompactionActionExecutor<T, I, K, O> extends BaseTableServi @Nullable private HoodieCompactionPlan scheduleCompaction() { - log.info("Checking if compaction needs to be run on " + config.getBasePath()); + log.info("Checking if compaction needs to be run on {}", config.getBasePath()); // judge if we need to compact according to num delta commits and time elapsed boolean compactable = needCompact(config.getInlineCompactTriggerStrategy()); if (compactable) { - log.info("Generating compaction plan for merge on read table " + config.getBasePath()); + log.info("Generating compaction plan for merge on read table {}", config.getBasePath()); try { context.setJobStatus(this.getClass().getSimpleName(), "Compaction: generating compaction plan"); return planGenerator.generateCompactionPlan(instantTime); diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/compact/plan/generators/HoodieCompactionPlanGenerator.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/compact/plan/generators/HoodieCompactionPlanGenerator.java index 381cf86f28a0..657b82da7a9b 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/compact/plan/generators/HoodieCompactionPlanGenerator.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/compact/plan/generators/HoodieCompactionPlanGenerator.java @@ -47,7 +47,7 @@ public class HoodieCompactionPlanGenerator<T extends HoodieRecordPayload, I, K, BaseTableServicePlanActionExecutor executor) { super(table, engineContext, writeConfig, executor); this.compactionStrategy = writeConfig.getCompactionStrategy(); - log.info("Compaction Strategy used is: " + compactionStrategy.toString()); + log.info("Compaction Strategy used is: {}", compactionStrategy); } @Override diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/index/AbstractIndexingCatchupTask.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/index/AbstractIndexingCatchupTask.java index c14df6312ecc..2ab39cd30534 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/index/AbstractIndexingCatchupTask.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/index/AbstractIndexingCatchupTask.java @@ -107,7 +107,7 @@ public abstract class AbstractIndexingCatchupTask implements IndexingCatchupTask try { // we need take a lock here as inflight writer could also try to update the timeline transactionManager.beginStateChange(Option.of(instant), Option.empty()); - log.info("Updating metadata table for instant: " + instant); + log.info("Updating metadata table for instant: {}", instant); switch (instant.getAction()) { case HoodieTimeline.COMMIT_ACTION: case HoodieTimeline.DELTA_COMMIT_ACTION: diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/restore/BaseRestoreActionExecutor.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/restore/BaseRestoreActionExecutor.java index 9ad9159ecef6..1be128c5bde7 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/restore/BaseRestoreActionExecutor.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/restore/BaseRestoreActionExecutor.java @@ -86,7 +86,7 @@ public abstract class BaseRestoreActionExecutor<T, I, K, O> extends BaseActionEx instantsToRollback.forEach(instant -> { instantToMetadata.put(instant.requestedTime(), Collections.singletonList(rollbackInstant(instant))); - log.info("Deleted instant " + instant); + log.info("Deleted instant {}", instant); }); return finishRestore(instantToMetadata, @@ -143,7 +143,7 @@ public abstract class BaseRestoreActionExecutor<T, I, K, O> extends BaseActionEx table.getActiveTimeline().deletePending(instantGenerator.createNewInstant(HoodieInstant.State.INFLIGHT, HoodieTimeline.ROLLBACK_ACTION, entry.requestedTime())); table.getActiveTimeline().deletePending(instantGenerator.createNewInstant(HoodieInstant.State.REQUESTED, HoodieTimeline.ROLLBACK_ACTION, entry.requestedTime())); }); - log.info("Commits " + instantsRolledBack + " rollback is complete. Restored table to " + savepointToRestoreTimestamp); + log.info("Commits {} rollback is complete. Restored table to {}", instantsRolledBack, savepointToRestoreTimestamp); return restoreMetadata; } diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/BaseRollbackActionExecutor.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/BaseRollbackActionExecutor.java index b319b629a400..86fc7e981b4c 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/BaseRollbackActionExecutor.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/BaseRollbackActionExecutor.java @@ -210,7 +210,7 @@ public abstract class BaseRollbackActionExecutor<T, I, K, O> extends BaseActionE if (!table.getIndex().rollbackCommit(instantToRollback.requestedTime())) { throw new HoodieRollbackException("Rollback index changes failed, for time :" + instantToRollback); } - log.info("Index rolled back for commits " + instantToRollback); + log.info("Index rolled back for commits {}", instantToRollback); } public List<HoodieRollbackStat> doRollbackAndGetStats(HoodieRollbackPlan hoodieRollbackPlan) { @@ -235,7 +235,7 @@ public abstract class BaseRollbackActionExecutor<T, I, K, O> extends BaseActionE try { List<HoodieRollbackStat> stats = executeRollback(hoodieRollbackPlan); - log.info("Rolled back inflight instant " + instantTimeToRollback); + log.info("Rolled back inflight instant {}", instantTimeToRollback); if (!isPendingCompaction) { rollBackIndex(); } @@ -289,7 +289,7 @@ public abstract class BaseRollbackActionExecutor<T, I, K, O> extends BaseActionE // when skipLocking is true, the caller should have already held the lock. table.getActiveTimeline().transitionRollbackInflightToComplete(false, inflightInstant, rollbackMetadata, completedInstant -> table.getMetaClient().getTableFormat().completedRollback(completedInstant, table.getContext(), table.getMetaClient(), table.getViewManager())); - log.info("Rollback of Commits " + rollbackMetadata.getCommitsRollback() + " is complete"); + log.info("Rollback of Commits {} is complete", rollbackMetadata.getCommitsRollback()); } } finally { if (enableLocking) { diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/CopyOnWriteRollbackActionExecutor.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/CopyOnWriteRollbackActionExecutor.java index d3f366289696..5b97a4ef9e15 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/CopyOnWriteRollbackActionExecutor.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/CopyOnWriteRollbackActionExecutor.java @@ -66,7 +66,7 @@ public class CopyOnWriteRollbackActionExecutor<T, I, K, O> extends BaseRollbackA HoodieActiveTimeline activeTimeline = table.getActiveTimeline(); if (instantToRollback.isCompleted()) { - log.info("Unpublishing instant " + instantToRollback); + log.info("Unpublishing instant {}", instantToRollback); table.getMetaClient().getTableFormat().rollback(instantToRollback, table.getContext(), table.getMetaClient(), table.getViewManager()); // Revert the completed instant to inflight in native format. resolvedInstant = activeTimeline.revertToInflight(instantToRollback); @@ -88,13 +88,13 @@ public class CopyOnWriteRollbackActionExecutor<T, I, K, O> extends BaseRollbackA // deleting the timeline file if (!resolvedInstant.isRequested()) { // delete all the data files for this commit - log.info("Clean out all base files generated for commit: " + resolvedInstant); + log.info("Clean out all base files generated for commit: {}", resolvedInstant); stats = executeRollback(resolvedInstant, hoodieRollbackPlan); } dropBootstrapIndexIfNeeded(instantToRollback); - log.info("Time(in ms) taken to finish rollback " + rollbackTimer.endTimer()); + log.info("Time(in ms) taken to finish rollback {}", rollbackTimer.endTimer()); return stats; } } diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/ListingBasedRollbackStrategy.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/ListingBasedRollbackStrategy.java index ff28dc99c586..433c769381db 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/ListingBasedRollbackStrategy.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/ListingBasedRollbackStrategy.java @@ -215,7 +215,7 @@ public class ListingBasedRollbackStrategy implements BaseRollbackPlanActionExecu return hoodieRollbackRequests.stream(); }, numPartitions); } catch (Exception e) { - log.error("Generating rollback requests failed for " + instantToRollback.requestedTime(), e); + log.error("Generating rollback requests failed for {}", instantToRollback.requestedTime(), e); throw new HoodieRollbackException("Generating rollback requests failed for " + instantToRollback.requestedTime(), e); } } diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/MergeOnReadRollbackActionExecutor.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/MergeOnReadRollbackActionExecutor.java index 1373d9679e02..bfe783779746 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/MergeOnReadRollbackActionExecutor.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/MergeOnReadRollbackActionExecutor.java @@ -60,11 +60,11 @@ public class MergeOnReadRollbackActionExecutor<T, I, K, O> extends BaseRollbackA protected List<HoodieRollbackStat> executeRollback(HoodieRollbackPlan hoodieRollbackPlan) { HoodieTimer rollbackTimer = HoodieTimer.start(); - log.info("Rolling back instant " + instantToRollback); + log.info("Rolling back instant {}", instantToRollback); // Atomically un-publish all non-inflight commits if (instantToRollback.isCompleted()) { - log.info("Un-publishing instant " + instantToRollback + ", deleteInstants=" + deleteInstants); + log.info("Un-publishing instant {}, deleteInstants={}", instantToRollback, deleteInstants); resolvedInstant = table.getActiveTimeline().revertToInflight(instantToRollback); // reload meta-client to reflect latest timeline status table.getMetaClient().reloadActiveTimeline(); @@ -81,13 +81,13 @@ public class MergeOnReadRollbackActionExecutor<T, I, K, O> extends BaseRollbackA // For Requested State (like failure during index lookup), there is nothing to do rollback other than // deleting the timeline file if (!resolvedInstant.isRequested()) { - log.info("Unpublished " + resolvedInstant); + log.info("Unpublished {}", resolvedInstant); allRollbackStats = executeRollback(instantToRollback, hoodieRollbackPlan); } dropBootstrapIndexIfNeeded(resolvedInstant); - log.info("Time(in ms) taken to finish rollback " + rollbackTimer.endTimer()); + log.info("Time(in ms) taken to finish rollback {}", rollbackTimer.endTimer()); return allRollbackStats; } } diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/marker/TimelineServerBasedWriteMarkers.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/marker/TimelineServerBasedWriteMarkers.java index b31fdc94178a..1b9880327473 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/marker/TimelineServerBasedWriteMarkers.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/marker/TimelineServerBasedWriteMarkers.java @@ -133,8 +133,7 @@ public class TimelineServerBasedWriteMarkers extends WriteMarkers { Map<String, String> paramsMap = getConfigMap(partitionPath, markerFileName, false); boolean success = executeCreateMarkerRequest(paramsMap, partitionPath, markerFileName); - log.info("[timeline-server-based] Created marker file " + partitionPath + "/" + markerFileName - + " in " + timer.endTimer() + " ms"); + log.info("[timeline-server-based] Created marker file {}/{} in {} ms", partitionPath, markerFileName, timer.endTimer()); if (success) { return Option.of(new StoragePath(FSUtils.constructAbsolutePath(markerDirPath, partitionPath), markerFileName)); } else { @@ -151,8 +150,7 @@ public class TimelineServerBasedWriteMarkers extends WriteMarkers { boolean success = executeCreateMarkerRequest(paramsMap, partitionPath, markerFileName); - log.info("[timeline-server-based] Created marker file with early conflict detection " + partitionPath + "/" + markerFileName - + " in " + timer.endTimer() + " ms"); + log.info("[timeline-server-based] Created marker file with early conflict detection {}/{} in {} ms", partitionPath, markerFileName, timer.endTimer()); if (success) { return Option.of(new StoragePath(FSUtils.constructAbsolutePath(markerDirPath, partitionPath), markerFileName)); diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/upgrade/FiveToSixUpgradeHandler.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/upgrade/FiveToSixUpgradeHandler.java index 62a668a1acc6..c7089175d664 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/upgrade/FiveToSixUpgradeHandler.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/upgrade/FiveToSixUpgradeHandler.java @@ -64,12 +64,12 @@ public class FiveToSixUpgradeHandler implements UpgradeHandler { compactionTimeline.getInstantsAsStream().forEach( deleteInstant -> { - log.info("Deleting instant " + deleteInstant + " in auxiliary meta path " + metaClient.getMetaAuxiliaryPath()); + log.info("Deleting instant {} in auxiliary meta path {}", deleteInstant, metaClient.getMetaAuxiliaryPath()); StoragePath metaFile = new StoragePath(metaClient.getMetaAuxiliaryPath(), factory.getFileName(deleteInstant)); try { if (metaClient.getStorage().exists(metaFile)) { metaClient.getStorage().deleteFile(metaFile); - log.info("Deleted instant file in auxiliary meta path : " + metaFile); + log.info("Deleted instant file in auxiliary meta path : {}", metaFile); } } catch (IOException e) { throw new HoodieUpgradeDowngradeException(HoodieTableVersion.FIVE.versionCode(), HoodieTableVersion.SIX.versionCode(), true, e); diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/upgrade/UpgradeDowngrade.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/upgrade/UpgradeDowngrade.java index 0d17a75a7da4..febb815ad34f 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/upgrade/UpgradeDowngrade.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/upgrade/UpgradeDowngrade.java @@ -208,7 +208,7 @@ public class UpgradeDowngrade { // Perform the actual upgrade/downgrade; this has to be idempotent, for now. - log.info("Attempting to move table from version " + fromVersion + " to " + toVersion); + log.info("Attempting to move table from version {} to {}", fromVersion, toVersion); Map<ConfigProperty, String> tablePropsToAdd = new Hashtable<>(); Set<ConfigProperty> tablePropsToRemove = new HashSet<>(); if (isUpgrade) { diff --git a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/client/utils/TestLegacyArchivedMetaEntryReader.java b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/client/utils/TestLegacyArchivedMetaEntryReader.java index ac6e7df56038..7bab6f5a19a1 100644 --- a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/client/utils/TestLegacyArchivedMetaEntryReader.java +++ b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/client/utils/TestLegacyArchivedMetaEntryReader.java @@ -117,13 +117,13 @@ public class TestLegacyArchivedMetaEntryReader { public void archive(HoodieTableMetaClient metaClient, List<HoodieInstant> instants) throws HoodieCommitException { try (HoodieLogFormat.Writer writer = openWriter(metaClient)) { Schema wrapperSchema = HoodieArchivedMetaEntry.getClassSchema(); - log.info("Wrapper schema " + wrapperSchema.toString()); + log.info("Wrapper schema {}", wrapperSchema); List<IndexedRecord> records = new ArrayList<>(); for (HoodieInstant hoodieInstant : instants) { try { records.add(convertToAvroRecord(hoodieInstant, metaClient)); } catch (Exception e) { - log.error("Failed to archive commits, .commit file: " + INSTANT_FILE_NAME_GENERATOR.getFileName(hoodieInstant), e); + log.error("Failed to archive commits, .commit file: {}", INSTANT_FILE_NAME_GENERATOR.getFileName(hoodieInstant), e); throw e; } } diff --git a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/table/action/rollback/TestRollbackHelper.java b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/table/action/rollback/TestRollbackHelper.java index 705aec57e66d..1f0f801d89b7 100644 --- a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/table/action/rollback/TestRollbackHelper.java +++ b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/table/action/rollback/TestRollbackHelper.java @@ -341,7 +341,7 @@ class TestRollbackHelper extends HoodieRollbackTestBase { fail("Should not have reached here"); } catch (HoodieException e) { if (!(e.getCause() instanceof HoodieIOException)) { - log.error("Expected HoodieIOException to be thrown, but found " + e.getCause() + ", w/ error msg " + e.getCause().getMessage()); + log.error("Expected HoodieIOException to be thrown, but found {}, w/ error msg {}", e.getCause(), e.getCause().getMessage()); } assertTrue(e.getCause() instanceof HoodieIOException); assertTrue(e.getCause().getMessage().contains("Failing to delete file during rollback execution failed : " + expectedFileToFailOnDeletion)); diff --git a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/testutils/HoodieWriteableTestTable.java b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/testutils/HoodieWriteableTestTable.java index f9802b163476..6a922c690b56 100644 --- a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/testutils/HoodieWriteableTestTable.java +++ b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/testutils/HoodieWriteableTestTable.java @@ -111,7 +111,7 @@ public class HoodieWriteableTestTable extends HoodieMetadataTestTable { StoragePath baseFilePath = new StoragePath(Paths.get(basePath, partition, fileName).toString()); if (storage.exists(baseFilePath)) { - log.warn("Deleting the existing base file " + baseFilePath); + log.warn("Deleting the existing base file {}", baseFilePath); storage.deleteFile(baseFilePath); } diff --git a/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/client/HoodieFlinkTableServiceClient.java b/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/client/HoodieFlinkTableServiceClient.java index 72ae3a967ab4..929515115627 100644 --- a/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/client/HoodieFlinkTableServiceClient.java +++ b/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/client/HoodieFlinkTableServiceClient.java @@ -99,7 +99,7 @@ public class HoodieFlinkTableServiceClient<T> extends BaseHoodieTableServiceClie + config.getBasePath() + " at time " + compactionCommitTime, e); } } - log.info("Compacted successfully on commit " + compactionCommitTime); + log.info("Compacted successfully on commit {}", compactionCommitTime); } finally { if (config.getWriteConcurrencyMode().supportsMultiWriter()) { this.heartbeatClient.stop(compactionCommitTime); @@ -159,7 +159,7 @@ public class HoodieFlinkTableServiceClient<T> extends BaseHoodieTableServiceClie + config.getBasePath() + " at time " + clusteringCommitTime, e); } } - log.info("Clustering successfully on commit " + clusteringCommitTime); + log.info("Clustering successfully on commit {}", clusteringCommitTime); } @Override diff --git a/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/io/FlinkCreateHandle.java b/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/io/FlinkCreateHandle.java index 038c6f8664e6..e788a82dda52 100644 --- a/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/io/FlinkCreateHandle.java +++ b/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/io/FlinkCreateHandle.java @@ -90,7 +90,7 @@ public class FlinkCreateHandle<T, I, K, O> final StoragePath path = makeNewFilePath(partitionPath, lastDataFileName); try { if (storage.exists(path)) { - log.info("Deleting invalid INSERT file due to task retry: " + lastDataFileName); + log.info("Deleting invalid INSERT file due to task retry: {}", lastDataFileName); storage.deleteFile(path); } } catch (IOException e) { diff --git a/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/io/storage/row/HoodieRowDataCreateHandle.java b/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/io/storage/row/HoodieRowDataCreateHandle.java index e3a8445d6675..957133295082 100644 --- a/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/io/storage/row/HoodieRowDataCreateHandle.java +++ b/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/io/storage/row/HoodieRowDataCreateHandle.java @@ -126,7 +126,7 @@ public class HoodieRowDataCreateHandle implements Serializable { } catch (IOException e) { throw new HoodieInsertException("Failed to initialize file writer for path " + path, e); } - log.info("New handle created for partition :" + partitionPath + " with fileId " + fileId); + log.info("New handle created for partition :{} with fileId {}", partitionPath, fileId); } /** @@ -166,7 +166,7 @@ public class HoodieRowDataCreateHandle implements Serializable { ? HoodieRecordDelegate.create(recordKey, partitionPath, null, newRecordLocation) : null; writeStatus.markSuccess(recordDelegate, recordMetadata); } catch (Throwable t) { - log.error("Error writing record " + record, t); + log.error("Error writing record {}", record, t); if (!writeConfig.getIgnoreWriteFailed()) { throw new HoodieException(t.getMessage(), t); } diff --git a/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/table/action/commit/FlinkPartitionTTLActionExecutor.java b/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/table/action/commit/FlinkPartitionTTLActionExecutor.java index dc3b38c5d810..1b8f965d5a06 100644 --- a/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/table/action/commit/FlinkPartitionTTLActionExecutor.java +++ b/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/table/action/commit/FlinkPartitionTTLActionExecutor.java @@ -58,7 +58,7 @@ public class FlinkPartitionTTLActionExecutor<T> extends BaseFlinkCommitActionExe if (expiredPartitions.isEmpty()) { return emptyResult; } - log.info("Partition ttl find the following expired partitions to delete: " + String.join(",", expiredPartitions)); + log.info("Partition ttl find the following expired partitions to delete: {}", String.join(",", expiredPartitions)); return new FlinkAutoCommitActionExecutor(new FlinkDeletePartitionCommitActionExecutor<>(context, config, table, instantTime, expiredPartitions)).execute(); } catch (HoodieDeletePartitionPendingTableServiceException deletePartitionPendingTableServiceException) { log.info("Partition is under table service, do nothing, call delete partition next time."); diff --git a/hudi-client/hudi-java-client/src/main/java/org/apache/hudi/table/action/commit/BaseJavaCommitActionExecutor.java b/hudi-client/hudi-java-client/src/main/java/org/apache/hudi/table/action/commit/BaseJavaCommitActionExecutor.java index 43e5dd260561..7746bdf3be7e 100644 --- a/hudi-client/hudi-java-client/src/main/java/org/apache/hudi/table/action/commit/BaseJavaCommitActionExecutor.java +++ b/hudi-client/hudi-java-client/src/main/java/org/apache/hudi/table/action/commit/BaseJavaCommitActionExecutor.java @@ -94,7 +94,7 @@ public abstract class BaseJavaCommitActionExecutor<T> extends WorkloadProfile workloadProfile = new WorkloadProfile(buildProfile(inputRecords), table.getIndex().canIndexLogFiles()); - log.info("Input workload profile :" + workloadProfile); + log.info("Input workload profile :{}", workloadProfile); final Partitioner partitioner = getPartitioner(workloadProfile); try { saveWorkloadProfileMetadataToInflight(workloadProfile, instantTime); @@ -236,7 +236,7 @@ public abstract class BaseJavaCommitActionExecutor<T> extends throws IOException { // This is needed since sometimes some buckets are never picked in getPartition() and end up with 0 records if (!recordItr.hasNext()) { - log.info("Empty partition with fileId => " + fileId); + log.info("Empty partition with fileId => {}", fileId); return Collections.singletonList((List<WriteStatus>) Collections.EMPTY_LIST).iterator(); } // these are updates diff --git a/hudi-client/hudi-java-client/src/main/java/org/apache/hudi/table/action/commit/JavaUpsertPartitioner.java b/hudi-client/hudi-java-client/src/main/java/org/apache/hudi/table/action/commit/JavaUpsertPartitioner.java index 15010d21a0d6..9b86e6ccb806 100644 --- a/hudi-client/hudi-java-client/src/main/java/org/apache/hudi/table/action/commit/JavaUpsertPartitioner.java +++ b/hudi-client/hudi-java-client/src/main/java/org/apache/hudi/table/action/commit/JavaUpsertPartitioner.java @@ -93,9 +93,8 @@ public class JavaUpsertPartitioner<T> implements Partitioner { assignUpdates(workloadProfile); assignInserts(workloadProfile, context); - log.info("Total Buckets :" + totalBuckets + ", buckets info => " + bucketInfoMap + ", \n" - + "Partition to insert buckets => " + partitionPathToInsertBucketInfos + ", \n" - + "UpdateLocations mapped to buckets =>" + updateLocationToBucket); + log.info("Total Buckets :{}, buckets info => {}, \nPartition to insert buckets => {}, \nUpdateLocations mapped to buckets =>{}", + totalBuckets, bucketInfoMap, partitionPathToInsertBucketInfos, updateLocationToBucket); } private void assignUpdates(WorkloadProfile profile) { @@ -132,7 +131,7 @@ public class JavaUpsertPartitioner<T> implements Partitioner { long averageRecordSize = averageBytesPerRecord(table.getMetaClient().getActiveTimeline().getCommitAndReplaceTimeline().filterCompletedInstants(), config); - log.info("AvgRecordSize => " + averageRecordSize); + log.info("AvgRecordSize => {}", averageRecordSize); Map<String, List<SmallFile>> partitionSmallFilesMap = getSmallFilesForPartitions(new ArrayList<String>(partitionPaths), context); @@ -145,7 +144,7 @@ public class JavaUpsertPartitioner<T> implements Partitioner { List<SmallFile> smallFiles = partitionSmallFilesMap.getOrDefault(partitionPath, new ArrayList<>()); this.smallFiles.addAll(smallFiles); - log.info("For partitionPath : " + partitionPath + " Small Files => " + smallFiles); + log.info("For partitionPath : {} Small Files => {}", partitionPath, smallFiles); long totalUnassignedInserts = pStat.getNumInserts(); List<Integer> bucketNumbers = new ArrayList<>(); @@ -160,10 +159,10 @@ public class JavaUpsertPartitioner<T> implements Partitioner { int bucket; if (updateLocationToBucket.containsKey(smallFile.location.getFileId())) { bucket = updateLocationToBucket.get(smallFile.location.getFileId()); - log.info("Assigning " + recordsToAppend + " inserts to existing update bucket " + bucket); + log.info("Assigning {} inserts to existing update bucket {}", recordsToAppend, bucket); } else { bucket = addUpdateBucket(partitionPath, smallFile.location.getFileId()); - log.info("Assigning " + recordsToAppend + " inserts to new update bucket " + bucket); + log.info("Assigning {} inserts to new update bucket {}", recordsToAppend, bucket); } if (profile.hasOutputWorkLoadStats()) { outputWorkloadStats.addInserts(smallFile.location, recordsToAppend); @@ -182,8 +181,7 @@ public class JavaUpsertPartitioner<T> implements Partitioner { } int insertBuckets = (int) Math.ceil((1.0 * totalUnassignedInserts) / insertRecordsPerBucket); - log.info("After small file assignment: unassignedInserts => " + totalUnassignedInserts - + ", totalInsertBuckets => " + insertBuckets + ", recordsPerBucket => " + insertRecordsPerBucket); + log.info("After small file assignment: unassignedInserts => {}, totalInsertBuckets => {}, recordsPerBucket => {}", totalUnassignedInserts, insertBuckets, insertRecordsPerBucket); for (int b = 0; b < insertBuckets; b++) { bucketNumbers.add(totalBuckets); if (b < insertBuckets - 1) { @@ -210,7 +208,7 @@ public class JavaUpsertPartitioner<T> implements Partitioner { currentCumulativeWeight += bkt.weight; insertBuckets.add(new InsertBucketCumulativeWeightPair(bkt, currentCumulativeWeight)); } - log.info("Total insert buckets for partition path " + partitionPath + " => " + insertBuckets); + log.info("Total insert buckets for partition path {} => {}", partitionPath, insertBuckets); partitionPathToInsertBucketInfos.put(partitionPath, insertBuckets); } if (profile.hasOutputWorkLoadStats()) { diff --git a/hudi-client/hudi-java-client/src/main/java/org/apache/hudi/table/action/deltacommit/BaseJavaDeltaCommitActionExecutor.java b/hudi-client/hudi-java-client/src/main/java/org/apache/hudi/table/action/deltacommit/BaseJavaDeltaCommitActionExecutor.java index 42be024f167d..ec25bcabd6ec 100644 --- a/hudi-client/hudi-java-client/src/main/java/org/apache/hudi/table/action/deltacommit/BaseJavaDeltaCommitActionExecutor.java +++ b/hudi-client/hudi-java-client/src/main/java/org/apache/hudi/table/action/deltacommit/BaseJavaDeltaCommitActionExecutor.java @@ -69,10 +69,10 @@ abstract class BaseJavaDeltaCommitActionExecutor<T> extends BaseJavaCommitAction @Override public Iterator<List<WriteStatus>> handleUpdate(String partitionPath, String fileId, Iterator<HoodieRecord<T>> recordItr) throws IOException { - log.info("Merging updates for commit " + instantTime + " for file " + fileId); + log.info("Merging updates for commit {} for file {}", instantTime, fileId); if (!table.getIndex().canIndexLogFiles() && partitioner != null && partitioner.getSmallFileIds().contains(fileId)) { - log.info("Small file corrections for updates for commit " + instantTime + " for file " + fileId); + log.info("Small file corrections for updates for commit {} for file {}", instantTime, fileId); return super.handleUpdate(partitionPath, fileId, recordItr); } else { HoodieAppendHandle<?, ?, ?, ?> appendHandle = new HoodieAppendHandle<>(config, instantTime, table, diff --git a/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/client/TestJavaHoodieBackedMetadata.java b/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/client/TestJavaHoodieBackedMetadata.java index feda056472dc..52b5563ac93e 100644 --- a/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/client/TestJavaHoodieBackedMetadata.java +++ b/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/client/TestJavaHoodieBackedMetadata.java @@ -1840,7 +1840,7 @@ public class TestJavaHoodieBackedMetadata extends TestHoodieMetadataBase { // Ensure all commits were synced to the Metadata Table HoodieTableMetaClient metadataMetaClient = createMetaClientForMetadataTable(); - log.warn("total commits in metadata table " + metadataMetaClient.getActiveTimeline().getCommitsTimeline().countInstants()); + log.warn("total commits in metadata table {}", metadataMetaClient.getActiveTimeline().getCommitsTimeline().countInstants()); // 6 commits and 2 cleaner commits. assertEquals(metadataMetaClient.getActiveTimeline().getDeltaCommitTimeline().filterCompletedInstants().countInstants(), 8); @@ -2832,17 +2832,17 @@ public class TestJavaHoodieBackedMetadata extends TestHoodieMetadataBase { if ((fsFileNames.size() != metadataFilenames.size()) || (!fsFileNames.equals(metadataFilenames))) { - log.info("*** File system listing = " + Arrays.toString(fsFileNames.toArray())); - log.info("*** Metadata listing = " + Arrays.toString(metadataFilenames.toArray())); + log.info("*** File system listing = {}", Arrays.toString(fsFileNames.toArray())); + log.info("*** Metadata listing = {}", Arrays.toString(metadataFilenames.toArray())); for (String fileName : fsFileNames) { if (!metadataFilenames.contains(fileName)) { - log.error(partition + "FsFilename " + fileName + " not found in Meta data"); + log.error("{}FsFilename {} not found in Meta data", partition, fileName); } } for (String fileName : metadataFilenames) { if (!fsFileNames.contains(fileName)) { - log.error(partition + "Metadata file " + fileName + " not found in original FS"); + log.error("{}Metadata file {} not found in original FS", partition, fileName); } } } @@ -2922,7 +2922,7 @@ public class TestJavaHoodieBackedMetadata extends TestHoodieMetadataBase { }); // TODO: include validation for record_index partition here. - log.info("Validation time=" + timer.endTimer()); + log.info("Validation time={}", timer.endTimer()); } } diff --git a/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/table/action/commit/TestJavaCopyOnWriteActionExecutor.java b/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/table/action/commit/TestJavaCopyOnWriteActionExecutor.java index 8fc8b480a3f0..a0998cbdd031 100644 --- a/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/table/action/commit/TestJavaCopyOnWriteActionExecutor.java +++ b/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/table/action/commit/TestJavaCopyOnWriteActionExecutor.java @@ -366,7 +366,7 @@ public class TestJavaCopyOnWriteActionExecutor extends HoodieJavaClientTestHarne int counts = 0; for (File file : Paths.get(basePath, "2016/01/31").toFile().listFiles()) { if (file.getName().endsWith(table.getBaseFileExtension()) && FSUtils.getCommitTime(file.getName()).equals(instantTime)) { - log.info(file.getName() + "-" + file.length()); + log.info("{}-{}", file.getName(), file.length()); counts++; } } diff --git a/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/testutils/HoodieJavaClientTestHarness.java b/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/testutils/HoodieJavaClientTestHarness.java index 353be1549081..5d5d15e19d9e 100644 --- a/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/testutils/HoodieJavaClientTestHarness.java +++ b/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/testutils/HoodieJavaClientTestHarness.java @@ -353,7 +353,7 @@ public abstract class HoodieJavaClientTestHarness extends HoodieWriterClientTest runFullValidation(writeConfig, metadataTableBasePath, engineContext); } - log.info("Validation time=" + timer.endTimer()); + log.info("Validation time={}", timer.endTimer()); } protected void validateFilesPerPartition(HoodieTestTable testTable, diff --git a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/clustering/run/strategy/SparkBinaryCopyClusteringExecutionStrategy.java b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/clustering/run/strategy/SparkBinaryCopyClusteringExecutionStrategy.java index f68579e580d7..efabfeaf5d4e 100644 --- a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/clustering/run/strategy/SparkBinaryCopyClusteringExecutionStrategy.java +++ b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/clustering/run/strategy/SparkBinaryCopyClusteringExecutionStrategy.java @@ -95,7 +95,7 @@ public class SparkBinaryCopyClusteringExecutionStrategy<T> extends SparkSortAndS JavaSparkContext engineContext = HoodieSparkEngineContext.getSparkContext(getEngineContext()); TaskContextSupplier taskContextSupplier = getEngineContext().getTaskContextSupplier(); JavaRDD<ClusteringGroupInfo> groupInfoJavaRDD = engineContext.parallelize(clusteringGroupInfos, clusteringGroupInfos.size()); - log.info("number of partitions for clustering " + groupInfoJavaRDD.getNumPartitions()); + log.info("number of partitions for clustering {}", groupInfoJavaRDD.getNumPartitions()); JavaRDD<WriteStatus> writeStatusRDD = groupInfoJavaRDD .mapPartitions(clusteringOps -> { Iterable<ClusteringGroupInfo> clusteringOpsIterable = () -> clusteringOps; diff --git a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/clustering/run/strategy/SparkExternalFileClusteringExecutionStrategy.java b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/clustering/run/strategy/SparkExternalFileClusteringExecutionStrategy.java index be5c8aaa01ef..0abcec9c9bee 100644 --- a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/clustering/run/strategy/SparkExternalFileClusteringExecutionStrategy.java +++ b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/clustering/run/strategy/SparkExternalFileClusteringExecutionStrategy.java @@ -87,7 +87,7 @@ public abstract class SparkExternalFileClusteringExecutionStrategy<T extends Hoo try { getHoodieTable().getStorage().deleteFile(writeHandler.getPath()); } catch (Exception deleteEx) { - LOG.warn("Failed to clean up partial output file: " + writeHandler.getPath(), deleteEx); + LOG.warn("Failed to clean up partial output file: {}", writeHandler.getPath(), deleteEx); } throw new HoodieClusteringException("Failed to transform file: " + dataFilePathStr, e); } diff --git a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/validator/SparkPreCommitValidator.java b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/validator/SparkPreCommitValidator.java index b06e80bf6392..de3ffbf6ae63 100644 --- a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/validator/SparkPreCommitValidator.java +++ b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/validator/SparkPreCommitValidator.java @@ -96,7 +96,7 @@ public abstract class SparkPreCommitValidator<T, I, K, O extends HoodieData<Writ throw new RuntimeException(e); } finally { long duration = timer.endTimer(); - log.info(getClass() + " validator took " + duration + " ms" + ", metrics on? " + getWriteConfig().isMetricsOn()); + log.info("{} validator took {} ms, metrics on? {}", getClass(), duration, getWriteConfig().isMetricsOn()); publishRunStats(instantTime, duration); } } diff --git a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/validator/SqlQueryEqualityPreCommitValidator.java b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/validator/SqlQueryEqualityPreCommitValidator.java index 9959baad30a2..d5884aaabada 100644 --- a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/validator/SqlQueryEqualityPreCommitValidator.java +++ b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/validator/SqlQueryEqualityPreCommitValidator.java @@ -57,16 +57,16 @@ public class SqlQueryEqualityPreCommitValidator<T, I, K, O extends HoodieData<Wr try { prevRows = executeSqlQuery( sqlContext, query, prevTableSnapshot, "previous state").cache(); - log.info("Total rows in prevRows " + prevRows.count()); + log.info("Total rows in prevRows {}", prevRows.count()); newRows = executeSqlQuery( sqlContext, query, newTableSnapshot, "new state").cache(); - log.info("Total rows in newRows " + newRows.count()); + log.info("Total rows in newRows {}", newRows.count()); printAllRowsIfDebugEnabled(prevRows); printAllRowsIfDebugEnabled(newRows); boolean areDatasetsEqual = prevRows.intersect(newRows).count() == prevRows.count(); - log.info("Completed Equality Validation, datasets equal? " + areDatasetsEqual); + log.info("Completed Equality Validation, datasets equal? {}", areDatasetsEqual); if (!areDatasetsEqual) { - log.error("query validation failed. See stdout for sample query results. Query: " + query); + log.error("query validation failed. See stdout for sample query results. Query: {}", query); System.out.println("Expected result (sample records only):"); prevRows.show(); System.out.println("Actual result (sample records only):"); diff --git a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/validator/SqlQueryInequalityPreCommitValidator.java b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/validator/SqlQueryInequalityPreCommitValidator.java index f0aae541d3d3..0b22b540a79b 100644 --- a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/validator/SqlQueryInequalityPreCommitValidator.java +++ b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/validator/SqlQueryInequalityPreCommitValidator.java @@ -54,16 +54,16 @@ public class SqlQueryInequalityPreCommitValidator<T, I, K, O extends HoodieData< protected void validateUsingQuery(String query, String prevTableSnapshot, String newTableSnapshot, SQLContext sqlContext) { Dataset<Row> prevRows = executeSqlQuery( sqlContext, query, prevTableSnapshot, "previous state").cache(); - log.info("Total rows in prevRows " + prevRows.count()); + log.info("Total rows in prevRows {}", prevRows.count()); Dataset<Row> newRows = executeSqlQuery( sqlContext, query, newTableSnapshot, "new state").cache(); - log.info("Total rows in newRows " + newRows.count()); + log.info("Total rows in newRows {}", newRows.count()); printAllRowsIfDebugEnabled(prevRows); printAllRowsIfDebugEnabled(newRows); boolean areDatasetsEqual = prevRows.intersect(newRows).count() == prevRows.count(); - log.info("Completed Inequality Validation, datasets equal? " + areDatasetsEqual); + log.info("Completed Inequality Validation, datasets equal? {}", areDatasetsEqual); if (areDatasetsEqual) { - log.error("query validation failed. See stdout for sample query results. Query: " + query); + log.error("query validation failed. See stdout for sample query results. Query: {}", query); System.out.println("Expected query results to be different, but they are same. Result (sample records only):"); prevRows.show(); throw new HoodieValidationException("Query validation failed for '" + query diff --git a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/validator/SqlQuerySingleResultPreCommitValidator.java b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/validator/SqlQuerySingleResultPreCommitValidator.java index 47f961b88b94..ef5278f02d3d 100644 --- a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/validator/SqlQuerySingleResultPreCommitValidator.java +++ b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/client/validator/SqlQuerySingleResultPreCommitValidator.java @@ -66,11 +66,11 @@ public class SqlQuerySingleResultPreCommitValidator<T, I, K, O extends HoodieDat } Object result = newRows.get(0).apply(0); if (result == null || !expectedResult.equals(result.toString())) { - log.error("Mismatch query result. Expected: " + expectedResult + " got " + result + " on Query: " + query); + log.error("Mismatch query result. Expected: {} got {} on Query: {}", expectedResult, result, query); throw new HoodieValidationException("Query validation failed for '" + query + "'. Expected " + expectedResult + " row(s), Found " + result); } else { - log.info("Query validation successful. Expected: " + expectedResult + " got " + result); + log.info("Query validation successful. Expected: {} got {}", expectedResult, result); } } } diff --git a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/io/storage/row/HoodieRowCreateHandle.java b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/io/storage/row/HoodieRowCreateHandle.java index 0222506f56fa..c6d20eefb582 100644 --- a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/io/storage/row/HoodieRowCreateHandle.java +++ b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/io/storage/row/HoodieRowCreateHandle.java @@ -194,7 +194,7 @@ public class HoodieRowCreateHandle implements Serializable { ? HoodieRecordDelegate.create(recordKey.toString(), partitionPath.toString(), null, newRecordLocation) : null; writeStatus.markSuccess(recordDelegate, Option.empty()); } catch (Exception t) { - log.error("Error writing record " + row, t); + log.error("Error writing record {}", row, t); if (!writeConfig.getIgnoreWriteFailed()) { throw new HoodieException(t.getMessage(), t); } diff --git a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/table/action/bootstrap/BaseBootstrapMetadataHandler.java b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/table/action/bootstrap/BaseBootstrapMetadataHandler.java index c0babd724873..6e24f34fa1c8 100644 --- a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/table/action/bootstrap/BaseBootstrapMetadataHandler.java +++ b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/table/action/bootstrap/BaseBootstrapMetadataHandler.java @@ -65,7 +65,7 @@ public abstract class BaseBootstrapMetadataHandler implements BootstrapMetadataH .collect(Collectors.toList()); HoodieSchema recordKeySchema = HoodieSchemaUtils.generateProjectionSchema(schema, recordKeyColumns); - LOG.info("Schema to be used for reading record keys: " + recordKeySchema); + LOG.info("Schema to be used for reading record keys: {}", recordKeySchema); executeBootstrap(bootstrapHandle, sourceFilePath, keyGenerator, partitionPath, recordKeySchema); } catch (Exception e) { diff --git a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/table/action/bootstrap/SparkBootstrapCommitActionExecutor.java b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/table/action/bootstrap/SparkBootstrapCommitActionExecutor.java index f611e71d43f3..eb61b2699b37 100644 --- a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/table/action/bootstrap/SparkBootstrapCommitActionExecutor.java +++ b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/table/action/bootstrap/SparkBootstrapCommitActionExecutor.java @@ -204,14 +204,12 @@ public class SparkBootstrapCommitActionExecutor<T> HoodieTableMetaClient metaClient = table.getMetaClient(); try (BootstrapIndex.IndexWriter indexWriter = BootstrapIndex.getBootstrapIndex(metaClient) .createWriter(metaClient.getTableConfig().getBootstrapBasePath().get())) { - log.info("Starting to write bootstrap index for source " + config.getBootstrapSourceBasePath() + " in table " - + config.getBasePath()); + log.info("Starting to write bootstrap index for source {} in table {}", config.getBootstrapSourceBasePath(), config.getBasePath()); indexWriter.begin(); bootstrapSourceAndStats.forEach((key, value) -> indexWriter.appendNextPartition(key, value.stream().map(Pair::getKey).collect(Collectors.toList()))); indexWriter.finish(); - log.info("Finished writing bootstrap index for source " + config.getBootstrapSourceBasePath() + " in table " - + config.getBasePath()); + log.info("Finished writing bootstrap index for source {} in table {}", config.getBootstrapSourceBasePath(), config.getBasePath()); } commit(result, bootstrapSourceAndStats.values().stream() .flatMap(f -> f.stream().map(Pair::getValue)).collect(Collectors.toList())); @@ -278,7 +276,7 @@ public class SparkBootstrapCommitActionExecutor<T> log.info("Fetching Bootstrap Schema !!"); HoodieBootstrapSchemaProvider sourceSchemaProvider = new HoodieSparkBootstrapSchemaProvider(config); bootstrapSchema = sourceSchemaProvider.getBootstrapSchema(context, folders).toString(); - log.info("Bootstrap Schema :" + bootstrapSchema); + log.info("Bootstrap Schema :{}", bootstrapSchema); BootstrapModeSelector selector = (BootstrapModeSelector) ReflectionUtils.loadClass(config.getBootstrapModeSelectorClass(), config); diff --git a/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/client/common/TestHoodieSparkEngineDynamicRepartition.java b/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/client/common/TestHoodieSparkEngineDynamicRepartition.java index 217b2c4dd6a5..86bd48f20ac4 100644 --- a/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/client/common/TestHoodieSparkEngineDynamicRepartition.java +++ b/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/client/common/TestHoodieSparkEngineDynamicRepartition.java @@ -210,7 +210,7 @@ public class TestHoodieSparkEngineDynamicRepartition { } catch (AssertionError e) { logRDDContent("Original RDD", originalRdd); logRDDContent("Repartitioned RDD", repartitionedRdd); - LOG.error("Validation failed: " + e.getMessage(), e); + LOG.error("Validation failed: {}", e.getMessage(), e); throw e; // rethrow to fail the test } } diff --git a/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/io/TestHoodieTimelineArchiver.java b/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/io/TestHoodieTimelineArchiver.java index 5725c571c8dc..450a1b1d6b41 100644 --- a/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/io/TestHoodieTimelineArchiver.java +++ b/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/io/TestHoodieTimelineArchiver.java @@ -940,7 +940,7 @@ public class TestHoodieTimelineArchiver extends HoodieSparkClientTestHarness { int finalCounter = counter; curFuture.exceptionally(ex -> { if (!jobFailed.getAndSet(true)) { - log.warn("One of the job failed. Cancelling all other futures. " + ex.getCause() + ", " + ex.getMessage()); + log.warn("One of the job failed. Cancelling all other futures. {}, {}", ex.getCause(), ex.getMessage()); int secondCounter = 0; while (secondCounter < futures.size()) { if (secondCounter != finalCounter) { diff --git a/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/table/marker/TestTimelineServerBasedWriteMarkers.java b/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/table/marker/TestTimelineServerBasedWriteMarkers.java index e2d769ece032..9a29e7093fcd 100644 --- a/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/table/marker/TestTimelineServerBasedWriteMarkers.java +++ b/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/table/marker/TestTimelineServerBasedWriteMarkers.java @@ -74,7 +74,7 @@ public class TestTimelineServerBasedWriteMarkers extends TestWriteMarkersBase { this.markerFolderPath = new StoragePath(metaClient.getMarkerFolderPath("000")); restartServerAndClient(0); - log.info("Connecting to Timeline Server :" + timelineService.getServerPort()); + log.info("Connecting to Timeline Server :{}", timelineService.getServerPort()); } @AfterEach @@ -108,7 +108,7 @@ public class TestTimelineServerBasedWriteMarkers extends TestWriteMarkersBase { @EnumSource(value = FileSystemViewStorageType.class) public void testCreationWithTimelineServiceRetries(FileSystemViewStorageType storageType) throws Exception { restartServerAndClient(0, storageType); - log.info("Connecting to Timeline Server :" + timelineService.getServerPort()); + log.info("Connecting to Timeline Server :{}", timelineService.getServerPort()); // Validate marker creation/ deletion work without any failures in the timeline service. createSomeMarkers(true); assertTrue(storage.exists(markerFolderPath));
