This is an automated email from the ASF dual-hosted git repository.
voonhous pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/master by this push:
new d585f83462d7 refactor(cli): use SLF4J parameterized logging instead of
string concatenation (#19159)
d585f83462d7 is described below
commit d585f83462d7f6f220df733dd66a7942173e7c55
Author: voonhous <[email protected]>
AuthorDate: Sat Jul 4 19:02:49 2026 +0800
refactor(cli): use SLF4J parameterized logging instead of string
concatenation (#19159)
* refactor(cli): use SLF4J parameterized logging instead of string
concatenation
Convert log string concatenation to {} placeholders across hudi-cli.
Mechanical and behavior-preserving. Notable handling:
- MetadataCommand: two long multi-line concatenations (FS/metadata file size
mismatch) rewritten as wrapped parameterized calls; the inline equality
expression becomes a boolean {} arg.
- RepairsCommand: drop redundant hoodieInstant.toString() in the
parameterized arg.
- TableCommand: kept schema.toString(true) as-is (formatted print, not a
redundant no-arg toString).
* refactor(cli): serialize table schema once in fetchTableSchema
Extract schema.toString(true) to a local in the outputFilePath branch so it
is computed once and reused for both the log statement and writeToFile,
instead of serializing the schema twice. Per review.
---
.../hudi/cli/commands/CompactionCommand.java | 2 +-
.../apache/hudi/cli/commands/ExportCommand.java | 2 +-
.../hudi/cli/commands/LockAuditingCommand.java | 6 ++---
.../apache/hudi/cli/commands/MetadataCommand.java | 31 +++++++++++-----------
.../apache/hudi/cli/commands/RepairsCommand.java | 6 ++---
.../org/apache/hudi/cli/commands/TableCommand.java | 5 ++--
6 files changed, 26 insertions(+), 26 deletions(-)
diff --git
a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/CompactionCommand.java
b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/CompactionCommand.java
index 61a8ba5c6b12..53c48c847570 100644
--- a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/CompactionCommand.java
+++ b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/CompactionCommand.java
@@ -432,7 +432,7 @@ public class CompactionCommand {
ObjectInputStream in = new ObjectInputStream(inputStream);
try {
T result = (T) in.readObject();
- log.info("Result : " + result);
+ log.info("Result : {}", result);
return result;
} finally {
in.close();
diff --git
a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/ExportCommand.java
b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/ExportCommand.java
index 8692efb8f6ba..83bdbbdb9c5c 100644
--- a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/ExportCommand.java
+++ b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/ExportCommand.java
@@ -172,7 +172,7 @@ public class ExportCommand {
final String instantTime =
archiveEntryRecord.get("commitTime").toString();
if (metadata == null) {
- log.error("Could not load metadata for action " + action + "
at instant time " + instantTime);
+ log.error("Could not load metadata for action {} at instant
time {}", action, instantTime);
continue;
}
final String outPath = localFolder + StoragePath.SEPARATOR +
instantTime + "." + action;
diff --git
a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/LockAuditingCommand.java
b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/LockAuditingCommand.java
index 81db53632f89..3a0ebe694da6 100644
---
a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/LockAuditingCommand.java
+++
b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/LockAuditingCommand.java
@@ -503,7 +503,7 @@ public class LockAuditingCommand {
deletedCount++;
} catch (Exception e) {
failedCount++;
- log.warn("Failed to delete audit file: " + pathInfo.getPath(), e);
+ log.warn("Failed to delete audit file: {}", pathInfo.getPath(), e);
}
}
@@ -543,7 +543,7 @@ public class LockAuditingCommand {
AuditRecord entry = OBJECT_MAPPER.readValue(line,
AuditRecord.class);
entries.add(entry);
} catch (Exception e) {
- log.warn("Failed to parse JSON line in file " + filename + ": " +
line, e);
+ log.warn("Failed to parse JSON line in file {}: {}", filename,
line, e);
}
}
}
@@ -592,7 +592,7 @@ public class LockAuditingCommand {
filename
));
} catch (Exception e) {
- log.warn("Failed to parse audit file: " + filename, e);
+ log.warn("Failed to parse audit file: {}", filename, e);
return Option.empty();
}
}
diff --git
a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/MetadataCommand.java
b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/MetadataCommand.java
index dbdc32211a96..e2e86193b2ee 100644
--- a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/MetadataCommand.java
+++ b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/MetadataCommand.java
@@ -307,8 +307,8 @@ public class MetadataCommand {
if (!fsPartitions.equals(metadataPartitions)) {
log.error("FS partition listing is not matching with metadata partition
listing!");
- log.error("All FS partitions: " +
Arrays.toString(fsPartitions.toArray()));
- log.error("All Metadata partitions: " +
Arrays.toString(metadataPartitions.toArray()));
+ log.error("All FS partitions: {}",
Arrays.toString(fsPartitions.toArray()));
+ log.error("All Metadata partitions: {}",
Arrays.toString(metadataPartitions.toArray()));
}
final List<Comparable[]> rows = new ArrayList<>();
@@ -351,34 +351,33 @@ public class MetadataCommand {
}
if (metadataPathInfoList.size() != pathInfoList.size()) {
- log.error(" FS and metadata files count not matching for " + partition
- + ". FS files count " + pathInfoList.size()
- + ", metadata base files count " + metadataPathInfoList.size());
+ log.error(" FS and metadata files count not matching for {}. FS files
count {}, metadata base files count {}", partition, pathInfoList.size(),
metadataPathInfoList.size());
}
for (Map.Entry<String, StoragePathInfo> entry : pathInfoMap.entrySet()) {
if (!metadataPathInfoMap.containsKey(entry.getKey())) {
- log.error("FS file not found in metadata " + entry.getKey());
+ log.error("FS file not found in metadata {}", entry.getKey());
} else {
if (entry.getValue().getLength()
!= metadataPathInfoMap.get(entry.getKey()).getLength()) {
- log.error(" FS file size mismatch " + entry.getKey() + ", size
equality "
- + (entry.getValue().getLength()
- == metadataPathInfoMap.get(entry.getKey()).getLength())
- + ". FS size " + entry.getValue().getLength()
- + ", metadata size " +
metadataPathInfoMap.get(entry.getKey()).getLength());
+ log.error(" FS file size mismatch {}, size equality {}. FS size
{}, metadata size {}",
+ entry.getKey(),
+ entry.getValue().getLength() ==
metadataPathInfoMap.get(entry.getKey()).getLength(),
+ entry.getValue().getLength(),
+ metadataPathInfoMap.get(entry.getKey()).getLength());
}
}
}
for (Map.Entry<String, StoragePathInfo> entry :
metadataPathInfoMap.entrySet()) {
if (!pathInfoMap.containsKey(entry.getKey())) {
- log.error("Metadata file not found in FS " + entry.getKey());
+ log.error("Metadata file not found in FS {}", entry.getKey());
} else {
if (entry.getValue().getLength() !=
pathInfoMap.get(entry.getKey()).getLength()) {
- log.error(" Metadata file size mismatch " + entry.getKey() + ",
size equality "
- + (entry.getValue().getLength() ==
pathInfoMap.get(entry.getKey()).getLength())
- + ". Metadata size " + entry.getValue().getLength() + ", FS
size "
- + metadataPathInfoMap.get(entry.getKey()).getLength());
+ log.error(" Metadata file size mismatch {}, size equality {}.
Metadata size {}, FS size {}",
+ entry.getKey(),
+ entry.getValue().getLength() ==
pathInfoMap.get(entry.getKey()).getLength(),
+ entry.getValue().getLength(),
+ metadataPathInfoMap.get(entry.getKey()).getLength());
}
}
}
diff --git
a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/RepairsCommand.java
b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/RepairsCommand.java
index 6003e936b819..872ff342dce5 100644
--- a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/RepairsCommand.java
+++ b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/RepairsCommand.java
@@ -197,12 +197,12 @@ public class RepairsCommand {
try {
CleanerUtils.getCleanerPlan(client, instant);
} catch (AvroRuntimeException e) {
- log.warn("Corruption found. Trying to remove corrupted clean instant
file: " + instant);
+ log.warn("Corruption found. Trying to remove corrupted clean instant
file: {}", instant);
TimelineUtils.deleteInstantFile(client.getStorage(),
client.getTimelinePath(),
instant, client.getInstantFileNameGenerator());
} catch (IOException ioe) {
if (ioe.getMessage().contains("Not an Avro data file")) {
- log.warn("Corruption found. Trying to remove corrupted clean instant
file: " + instant);
+ log.warn("Corruption found. Trying to remove corrupted clean instant
file: {}", instant);
TimelineUtils.deleteInstantFile(client.getStorage(),
client.getTimelinePath(),
instant, client.getInstantFileNameGenerator());
} else {
@@ -216,7 +216,7 @@ public class RepairsCommand {
public void showFailedCommits() {
HoodieTableMetaClient metaClient = HoodieCLI.getTableMetaClient();
HoodieActiveTimeline activeTimeline = metaClient.getActiveTimeline();
-
activeTimeline.filterCompletedInstants().getInstantsAsStream().filter(activeTimeline::isEmpty).forEach(hoodieInstant
-> log.warn("Empty Commit: " + hoodieInstant.toString()));
+
activeTimeline.filterCompletedInstants().getInstantsAsStream().filter(activeTimeline::isEmpty).forEach(hoodieInstant
-> log.warn("Empty Commit: {}", hoodieInstant));
}
@ShellMethod(key = "repair migrate-partition-meta", value = "Migrate all
partition meta file currently stored in text format "
diff --git
a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/TableCommand.java
b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/TableCommand.java
index 0e3f7a4029dc..ed4b75b3924a 100644
--- a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/TableCommand.java
+++ b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/TableCommand.java
@@ -206,8 +206,9 @@ public class TableCommand {
TableSchemaResolver tableSchemaResolver = new TableSchemaResolver(client);
HoodieSchema schema = tableSchemaResolver.getTableSchema();
if (outputFilePath != null) {
- log.info("Latest table schema : " + schema.toString(true));
- writeToFile(outputFilePath, schema.toString(true));
+ String schemaStr = schema.toString(true);
+ log.info("Latest table schema : {}", schemaStr);
+ writeToFile(outputFilePath, schemaStr);
return String.format("Latest table schema written to %s",
outputFilePath);
} else {
return String.format("Latest table schema %s", schema.toString(true));