From d7822f2b43ffbe2d1ee1a4ce582be498302014cd Mon Sep 17 00:00:00 2001 From: zhan7236 <76658920+zhan7236@users.noreply.github.com> Date: Sun, 30 Nov 2025 17:46:39 +0000 Subject: [PATCH] Fix enable_audit_log configuration not taking effect The audit log configuration (enable_audit_log) was not taking effect because the configuration values were stored as static final fields in AbstractAuditLogger, which were initialized at class loading time before the configuration file was fully loaded. This fix changes the static final fields to dynamic method calls: - IS_AUDIT_LOG_ENABLED -> isAuditLogEnabled() - AUDITABLE_OPERATION_TYPE -> getAuditableOperationType() - AUDITABLE_OPERATION_LEVEL -> getAuditableOperationLevel() - AUDITABLE_OPERATION_RESULT -> getAuditableOperationResult() This ensures that the configuration values are read dynamically at runtime, after the configuration file has been properly loaded. Fixes: https://github.com/apache/iotdb/issues/16706 --- .../apache/iotdb/confignode/audit/CNAuditLogger.java | 6 +++++- .../org/apache/iotdb/db/audit/DNAuditLogger.java | 12 ++++++++++-- .../iotdb/commons/audit/AbstractAuditLogger.java | 11 ++++++++++- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/audit/CNAuditLogger.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/audit/CNAuditLogger.java index ccc1008eec31..75d1fd8e0ab0 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/audit/CNAuditLogger.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/audit/CNAuditLogger.java @@ -42,5 +42,9 @@ public CNAuditLogger(ConfigManager configManager) { } @Override - public void log(IAuditEntity auditLogFields, Supplier log) {} + public void log(IAuditEntity auditLogFields, Supplier log) { + if (!isAuditLogEnabled()) { + return; + } + } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/audit/DNAuditLogger.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/audit/DNAuditLogger.java index 3a07ac9aa69b..8c5b6be28882 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/audit/DNAuditLogger.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/audit/DNAuditLogger.java @@ -57,10 +57,18 @@ private static InsertRowStatement generateInsertStatement( public void createViewIfNecessary() {} @Override - public synchronized void log(IAuditEntity auditLogFields, Supplier log) {} + public synchronized void log(IAuditEntity auditLogFields, Supplier log) { + if (!isAuditLogEnabled()) { + return; + } + } public void logFromCN(AuditLogFields auditLogFields, String log, int nodeId) - throws IllegalPathException {} + throws IllegalPathException { + if (!isAuditLogEnabled()) { + return; + } + } private static class DNAuditLoggerHolder { diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/audit/AbstractAuditLogger.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/audit/AbstractAuditLogger.java index cec033663210..85d8b3e671f4 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/audit/AbstractAuditLogger.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/audit/AbstractAuditLogger.java @@ -40,7 +40,16 @@ public abstract class AbstractAuditLogger { public static final String AUDIT_LOG_LOG = "log"; private static final CommonConfig CONFIG = CommonDescriptor.getInstance().getConfig(); - protected static final boolean IS_AUDIT_LOG_ENABLED = CONFIG.isEnableAuditLog(); + + /** + * Check if audit log is enabled. This method reads the configuration dynamically instead of using + * a static final field to ensure that the configuration is properly loaded before being used. + * + * @return true if audit log is enabled, false otherwise + */ + protected static boolean isAuditLogEnabled() { + return CONFIG.isEnableAuditLog(); + } public abstract void log(IAuditEntity auditLogFields, Supplier log);