This is an automated email from the ASF dual-hosted git repository.
diqiu50 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/main by this push:
new 52b8f53412 [#12634] improvement(trino-connector): Log via
io.airlift.log.Logger (#12635)
52b8f53412 is described below
commit 52b8f53412a315c4c44fee03769269cd3b0fc054
Author: Yuhui <[email protected]>
AuthorDate: Thu Aug 27 14:12:17 2026 +0800
[#12634] improvement(trino-connector): Log via io.airlift.log.Logger
(#12635)
### What changes were proposed in this pull request?
Switch trino-connector's logging from SLF4J/Log4j2 to
`io.airlift.log.Logger`, matching Trino's
own connectors.
### Why are the changes needed?
Trino loads the connector plugin in an isolated classloader. Log4j2 is
classloader-scoped and the
plugin jar ships no config, so it falls back to Log4j2's default (root
ERROR, console) — most log
output is silently dropped instead of reaching `var/log/server.log`.
`io.airlift.log.Logger` wraps
`java.util.logging`, a JVM-wide singleton unaffected by classloader
isolation.
Fix: #12634
### Does this PR introduce any user-facing change?
No. Trino admins will now see Gravitino connector logs in
`var/log/server.log`.
### How was this patch tested?
- Compiled all trino-connector modules (base + 5 version-range variants)
- `./gradlew :trino-connector:trino-connector:test`
- `./build.sh sp`
---
build.gradle.kts | 16 +++++---
docs/trino-connector/development.md | 23 +++--------
docs/trino-connector/installation.md | 3 +-
gradle/libs.versions.toml | 4 +-
.../trino-connector-435-439/build.gradle.kts | 3 +-
.../trino-connector-440-445/build.gradle.kts | 3 +-
.../trino-connector-446-451/build.gradle.kts | 3 +-
.../trino-connector-452-468/build.gradle.kts | 3 +-
.../trino-connector-469-472/build.gradle.kts | 3 +-
.../trino-connector-473-478/build.gradle.kts | 3 +-
trino-connector/trino-connector/build.gradle.kts | 3 +-
.../trino/connector/GravitinoConnector.java | 9 ++---
.../trino/connector/GravitinoConnectorFactory.java | 14 +++----
.../connector/GravitinoConnectorPluginManager.java | 18 ++++-----
.../trino/connector/GravitinoMetadata.java | 13 +++---
.../connector/catalog/CatalogConnectorManager.java | 46 ++++++++++------------
.../catalog/CatalogConnectorMetadata.java | 7 ++--
.../catalog/CatalogConnectorMetadataAdapter.java | 7 ++--
.../catalog/CatalogPropertyConverter.java | 9 ++---
.../trino/connector/catalog/CatalogRegister.java | 27 ++++++-------
.../catalog/DefaultCatalogConnectorFactory.java | 5 +--
.../catalog/jdbc/mysql/MySQLMetadataAdapter.java | 3 +-
.../connector/security/GravitinoAuthProvider.java | 9 ++---
.../AlterCatalogStoredProcedure.java | 7 ++--
.../CreateCatalogStoredProcedure.java | 7 ++--
.../DropCatalogStoredProcedure.java | 12 +++---
.../trino/connector/util/json/JsonCodec.java | 7 ++--
27 files changed, 124 insertions(+), 143 deletions(-)
diff --git a/build.gradle.kts b/build.gradle.kts
index 2b6027ef42..94ca8ac447 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -157,11 +157,17 @@ allprojects {
"import\\s+.*\\.org\\.apache\\.commons\\.io\\.([A-Z][a-zA-Z0-9_]*);",
"import org.apache.commons.io.${'$'}1;"
)
- replaceRegex(
- "Use SLF4J Logger instead of other logging frameworks",
- "import\\s+.*\\.(Logger|LoggerFactory);",
- "import org.slf4j.${'$'}1;"
- )
+ // The trino-connector module logs via io.airlift.log.Logger to match
Trino's own
+ // logging so plugin log output routes into Trino's unified log,
instead of SLF4J.
+ // integration-test is intentionally excluded from this carve-out: it
runs outside
+ // Trino's isolated plugin classloader, so it should keep using SLF4J
as normal.
+ if (!project.path.startsWith(":trino-connector:trino-connector")) {
+ replaceRegex(
+ "Use SLF4J Logger instead of other logging frameworks",
+ "import\\s+.*\\.(Logger|LoggerFactory);",
+ "import org.slf4j.${'$'}1;"
+ )
+ }
replaceRegex(
"Remove Testcontainers shading",
"import\\s+org\\.testcontainers\\.shaded\\.([^;]+);",
diff --git a/docs/trino-connector/development.md
b/docs/trino-connector/development.md
index 5120955a77..cd2b54aa47 100644
--- a/docs/trino-connector/development.md
+++ b/docs/trino-connector/development.md
@@ -178,27 +178,14 @@ Change `localhost`, `port`, and the names of metalake and
catalogs to match your
</dependency>
<dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>2.0.9</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-slf4j2-impl</artifactId>
- <version>2.22.0</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-api</artifactId>
- <version>2.22.0</version>
+ <groupId>io.airlift</groupId>
+ <artifactId>log</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-core</artifactId>
- <version>2.22.0</version>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-jdk14</artifactId>
+ <version>2.0.17</version>
</dependency>
<dependency>
diff --git a/docs/trino-connector/installation.md
b/docs/trino-connector/installation.md
index d39b200ee3..9543261510 100644
--- a/docs/trino-connector/installation.md
+++ b/docs/trino-connector/installation.md
@@ -64,8 +64,7 @@ After unpacking, you can see the connector directory:
1. Download and unpack the correct Gravitino Trino connector tarball for your
Trino version.
2. Rename the unpacked connector directory to `gravitino`, and then copy it to
the Trino plugin directory.
Normally, the directory location is `Trino-server-<version>/plugin`, and
the directory contains other catalogs used by Trino.
-3. Add Trino JVM arguments
`-Dlog4j.configurationFile=file:////etc/trino/log4j2.properties` to enable
logging for the Gravitino Trino connector.
-4. Update Trino coordinator configuration.
+3. Update Trino coordinator configuration.
You need to set `catalog.management=dynamic`, The config location is
`Trino-server-<version>/etc/config.properties`, and the contents like:
```text
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 9222b53ab3..cb83b3b861 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -38,6 +38,7 @@ jetty = "9.4.58.v20250814"
jersey = "2.41"
mockito = "4.11.0"
airlift-json = "237"
+airlift-log = "237"
airlift-resolver = "1.6"
hive2 = "2.3.9"
hive3 = "3.1.3"
@@ -196,7 +197,7 @@ junit-jupiter-params = { group = "org.junit.jupiter", name
= "junit-jupiter-para
junit-jupiter-engine = { group = "org.junit.jupiter", name =
"junit-jupiter-engine", version.ref = "junit" }
slf4j-api = { group = "org.slf4j", name = "slf4j-api", version.ref = "slf4j" }
slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref =
"slf4j" }
-slf4j-jdk14 = { group = "org.slf4j", name = "slf4j-jdk14", version = "1.7.30" }
+slf4j-jdk14 = { group = "org.slf4j", name = "slf4j-jdk14", version.ref =
"slf4j" }
log4j-slf4j2-impl = { group = "org.apache.logging.log4j", name =
"log4j-slf4j2-impl", version.ref = "log4j" }
log4j-api = { group = "org.apache.logging.log4j", name = "log4j-api",
version.ref = "log4j" }
log4j-core = { group = "org.apache.logging.log4j", name = "log4j-core",
version.ref = "log4j" }
@@ -246,6 +247,7 @@ hadoop3-shaded-guava = { group =
"org.apache.hadoop.thirdparty", name = "hadoop-
hadoop3-shaded-protobuf = { group = "org.apache.hadoop.thirdparty", name =
"hadoop-shaded-protobuf_3_7", version.ref = "hadoop3-thirdparty" }
re2j = { group = "com.google.re2j", name = "re2j", version.ref = "re2j" }
airlift-json = { group = "io.airlift", name = "json", version.ref =
"airlift-json"}
+airlift-log = { group = "io.airlift", name = "log", version.ref =
"airlift-log" }
airlift-resolver = { group = "io.airlift.resolver", name = "resolver",
version.ref = "airlift-resolver"}
httpclient = { group = "org.apache.httpcomponents", name = "httpclient",
version.ref = "httpclient" }
httpclient5 = { group = "org.apache.httpcomponents.client5", name =
"httpclient5", version.ref = "httpclient5" }
diff --git a/trino-connector/trino-connector-435-439/build.gradle.kts
b/trino-connector/trino-connector-435-439/build.gradle.kts
index befe0343a7..a3864ffec9 100644
--- a/trino-connector/trino-connector-435-439/build.gradle.kts
+++ b/trino-connector/trino-connector-435-439/build.gradle.kts
@@ -51,7 +51,8 @@ dependencies {
implementation(project(":catalogs:catalog-common"))
implementation(project(":clients:client-java-runtime", configuration =
"shadow"))
implementation(libs.airlift.json)
- implementation(libs.bundles.log4j)
+ implementation(libs.airlift.log)
+ implementation(libs.slf4j.jdk14)
implementation(libs.commons.collections4)
implementation(libs.commons.lang3)
implementation("io.trino:trino-jdbc:$trinoVersion")
diff --git a/trino-connector/trino-connector-440-445/build.gradle.kts
b/trino-connector/trino-connector-440-445/build.gradle.kts
index d7bddb39e7..af4f5158ea 100644
--- a/trino-connector/trino-connector-440-445/build.gradle.kts
+++ b/trino-connector/trino-connector-440-445/build.gradle.kts
@@ -52,11 +52,12 @@ dependencies {
implementation(project(":catalogs:catalog-common"))
implementation(project(":clients:client-java-runtime", configuration =
"shadow"))
implementation(libs.airlift.json)
- implementation(libs.bundles.log4j)
implementation(libs.commons.collections4)
implementation(libs.commons.lang3)
implementation("io.trino:trino-jdbc:$trinoVersion")
runtimeOnly("io.opentelemetry.semconv:opentelemetry-semconv:$otelSemconvVersion")
+ implementation(libs.airlift.log)
+ implementation(libs.slf4j.jdk14)
compileOnly(libs.airlift.resolver)
compileOnly("io.trino:trino-spi:$trinoVersion") {
exclude("org.apache.logging.log4j")
diff --git a/trino-connector/trino-connector-446-451/build.gradle.kts
b/trino-connector/trino-connector-446-451/build.gradle.kts
index 6ae0102706..e4e75eda71 100644
--- a/trino-connector/trino-connector-446-451/build.gradle.kts
+++ b/trino-connector/trino-connector-446-451/build.gradle.kts
@@ -52,11 +52,12 @@ dependencies {
implementation(project(":catalogs:catalog-common"))
implementation(project(":clients:client-java-runtime", configuration =
"shadow"))
implementation(libs.airlift.json)
- implementation(libs.bundles.log4j)
implementation(libs.commons.collections4)
implementation(libs.commons.lang3)
implementation("io.trino:trino-jdbc:$trinoVersion")
runtimeOnly("io.opentelemetry.semconv:opentelemetry-semconv-incubating:$otelSemconvVersion")
+ implementation(libs.airlift.log)
+ implementation(libs.slf4j.jdk14)
compileOnly(libs.airlift.resolver)
compileOnly("io.trino:trino-spi:$trinoVersion") {
exclude("org.apache.logging.log4j")
diff --git a/trino-connector/trino-connector-452-468/build.gradle.kts
b/trino-connector/trino-connector-452-468/build.gradle.kts
index 6bcdff5e41..767903355f 100644
--- a/trino-connector/trino-connector-452-468/build.gradle.kts
+++ b/trino-connector/trino-connector-452-468/build.gradle.kts
@@ -52,11 +52,12 @@ dependencies {
implementation(project(":catalogs:catalog-common"))
implementation(project(":clients:client-java-runtime", configuration =
"shadow"))
implementation(libs.airlift.json)
- implementation(libs.bundles.log4j)
implementation(libs.commons.collections4)
implementation(libs.commons.lang3)
implementation("io.trino:trino-jdbc:$trinoVersion")
runtimeOnly("io.opentelemetry.semconv:opentelemetry-semconv:$otelSemconvVersion")
+ implementation(libs.airlift.log)
+ implementation(libs.slf4j.jdk14)
compileOnly(libs.airlift.resolver)
compileOnly("io.trino:trino-spi:$trinoVersion") {
exclude("org.apache.logging.log4j")
diff --git a/trino-connector/trino-connector-469-472/build.gradle.kts
b/trino-connector/trino-connector-469-472/build.gradle.kts
index ef3857a23c..e8ca4e2994 100644
--- a/trino-connector/trino-connector-469-472/build.gradle.kts
+++ b/trino-connector/trino-connector-469-472/build.gradle.kts
@@ -57,11 +57,12 @@ dependencies {
compileOnly(project(":common"))
implementation(libs.airlift.json)
- implementation(libs.bundles.log4j)
implementation(libs.commons.collections4)
implementation(libs.commons.lang3)
implementation("io.trino:trino-jdbc:$trinoVersion")
runtimeOnly("io.opentelemetry.semconv:opentelemetry-semconv:$otelSemconvVersion")
+ implementation(libs.airlift.log)
+ implementation(libs.slf4j.jdk14)
compileOnly(libs.airlift.resolver)
compileOnly("io.trino:trino-spi:$trinoVersion") {
exclude("org.apache.logging.log4j")
diff --git a/trino-connector/trino-connector-473-478/build.gradle.kts
b/trino-connector/trino-connector-473-478/build.gradle.kts
index d74624bb6d..f41b2aba87 100644
--- a/trino-connector/trino-connector-473-478/build.gradle.kts
+++ b/trino-connector/trino-connector-473-478/build.gradle.kts
@@ -52,11 +52,12 @@ dependencies {
implementation(project(":catalogs:catalog-common"))
implementation(project(":clients:client-java-runtime", configuration =
"shadow"))
implementation(libs.airlift.json)
- implementation(libs.bundles.log4j)
implementation(libs.commons.collections4)
implementation(libs.commons.lang3)
implementation("io.trino:trino-jdbc:$trinoVersion")
runtimeOnly("io.opentelemetry.semconv:opentelemetry-semconv:$otelSemconvVersion")
+ implementation(libs.airlift.log)
+ implementation(libs.slf4j.jdk14)
compileOnly(libs.airlift.resolver)
compileOnly("io.trino:trino-spi:$trinoVersion") {
exclude("org.apache.logging.log4j")
diff --git a/trino-connector/trino-connector/build.gradle.kts
b/trino-connector/trino-connector/build.gradle.kts
index 69ed4e7593..17b87d889c 100644
--- a/trino-connector/trino-connector/build.gradle.kts
+++ b/trino-connector/trino-connector/build.gradle.kts
@@ -35,10 +35,11 @@ dependencies {
implementation(project(":clients:client-java-runtime", configuration =
"shadow"))
implementation(libs.airlift.json)
- implementation(libs.bundles.log4j)
implementation(libs.commons.collections4)
implementation(libs.commons.lang3)
implementation("io.trino:trino-jdbc:$trinoVersion")
+ implementation(libs.airlift.log)
+ implementation(libs.slf4j.jdk14)
compileOnly(libs.airlift.resolver)
compileOnly("io.trino:trino-spi:$trinoVersion") {
exclude("org.apache.logging.log4j")
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnector.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnector.java
index e038f9671e..66f7b78036 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnector.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnector.java
@@ -28,6 +28,7 @@ import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.RemovalNotification;
import com.google.common.util.concurrent.UncheckedExecutionException;
+import io.airlift.log.Logger;
import io.trino.spi.TrinoException;
import io.trino.spi.connector.Connector;
import io.trino.spi.connector.ConnectorAccessControl;
@@ -57,8 +58,6 @@ import
org.apache.gravitino.trino.connector.catalog.CatalogConnectorContext;
import org.apache.gravitino.trino.connector.catalog.CatalogConnectorMetadata;
import
org.apache.gravitino.trino.connector.catalog.CatalogConnectorMetadataAdapter;
import org.apache.gravitino.trino.connector.security.GravitinoAuthProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* GravitinoConnector serves as the entry point for operations on the
connector managed by Trino and
@@ -67,7 +66,7 @@ import org.slf4j.LoggerFactory;
*/
public class GravitinoConnector implements Connector {
- private static final Logger LOG =
LoggerFactory.getLogger(GravitinoConnector.class);
+ private static final Logger LOG = Logger.get(GravitinoConnector.class);
private final NameIdentifier catalogIdentifier;
protected final CatalogConnectorContext catalogConnectorContext;
@@ -258,7 +257,7 @@ public class GravitinoConnector implements Connector {
} catch (ExecutionException | UncheckedExecutionException e) {
Throwable cause = e.getCause() == null ? e : e.getCause();
LOG.warn(
- "Failed to create per-user Gravitino client for user '{}'",
session.getUser(), cause);
+ cause, "Failed to create per-user Gravitino client for user '%s'",
session.getUser());
if (cause instanceof TrinoException) {
// Already carries a specific Trino error code (e.g. from
buildForSession); re-wrapping
// would swallow it.
@@ -353,7 +352,7 @@ public class GravitinoConnector implements Connector {
try {
client.close();
} catch (Exception e) {
- LOG.warn("Failed to close GravitinoAdminClient", e);
+ LOG.warn(e, "Failed to close GravitinoAdminClient");
}
}
}
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory.java
index 6308b7d1bc..722a75e7ea 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory.java
@@ -25,6 +25,7 @@ import static
org.apache.gravitino.trino.connector.GravitinoErrorCode.GRAVITINO_
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
+import io.airlift.log.Logger;
import io.trino.spi.TrinoException;
import io.trino.spi.connector.Connector;
import io.trino.spi.connector.ConnectorContext;
@@ -45,13 +46,11 @@ import
org.apache.gravitino.trino.connector.catalog.DefaultCatalogConnectorFacto
import org.apache.gravitino.trino.connector.system.GravitinoSystemConnector;
import
org.apache.gravitino.trino.connector.system.storedprocedure.GravitinoStoredProcedureFactory;
import
org.apache.gravitino.trino.connector.system.table.GravitinoSystemTableFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/** Gravitino connector factory. */
public class GravitinoConnectorFactory implements ConnectorFactory {
- private static final Logger LOG =
LoggerFactory.getLogger(GravitinoConnectorFactory.class);
+ private static final Logger LOG =
Logger.get(GravitinoConnectorFactory.class);
private static final int MIN_SUPPORT_TRINO_SPI_VERSION = 435;
private static final int MAX_SUPPORT_TRINO_SPI_VERSION = Integer.MAX_VALUE;
private static final Pattern TRINO_SPI_VERSION_PATTERN =
Pattern.compile("^(\\d+)");
@@ -154,7 +153,7 @@ public class GravitinoConnectorFactory implements
ConnectorFactory {
}
} catch (Exception e) {
String message = "Initialization of the GravitinoConnector failed " +
e.getMessage();
- LOG.error(message);
+ LOG.error(e, message);
throw new TrinoException(GRAVITINO_RUNTIME_ERROR, message, e);
}
}
@@ -213,10 +212,9 @@ public class GravitinoConnectorFactory implements
ConnectorFactory {
// check catalog name with metalake are supported in this trino version
if (!config.singleMetalakeMode() && !supportCatalogNameWithMetalake()) {
LOG.warn(
- "The trino-connector-{}-{} does not fully support catalog name with
metalake. "
+ "The trino-connector-%s-%s does not fully support catalog name with
metalake. "
+ "The DROP CATALOG operation may not work correctly in
multi-metalake mode.",
- getMinSupportTrinoSpiVersion(),
- getMaxSupportTrinoSpiVersion());
+ getMinSupportTrinoSpiVersion(), getMaxSupportTrinoSpiVersion());
}
// skip version validation
@@ -225,7 +223,7 @@ public class GravitinoConnectorFactory implements
ConnectorFactory {
if (trinoVersion < getMinSupportTrinoSpiVersion()
|| trinoVersion > getMaxSupportTrinoSpiVersion()) {
LOG.warn(
- "Trino version {} has not been tested with Gravitino and may have
compatibility issues",
+ "Trino version %s has not been tested with Gravitino and may have
compatibility issues",
trinoVersion);
}
return;
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorPluginManager.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorPluginManager.java
index ccf59b8e59..192f272d55 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorPluginManager.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorPluginManager.java
@@ -22,6 +22,7 @@ import static
org.apache.gravitino.trino.connector.GravitinoConfig.TRINO_PLUGIN_
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableList;
+import io.airlift.log.Logger;
import io.airlift.resolver.ArtifactResolver;
import io.trino.spi.Plugin;
import io.trino.spi.TrinoException;
@@ -39,14 +40,12 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.ServiceLoader;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.sonatype.aether.artifact.Artifact;
/** This class is mange the internal connector plugin and help to create the
connector. */
public class GravitinoConnectorPluginManager {
- private static final Logger LOG =
LoggerFactory.getLogger(GravitinoConnectorPluginManager.class);
+ private static final Logger LOG =
Logger.get(GravitinoConnectorPluginManager.class);
/** The app class loader name. */
public static final String APP_CLASS_LOADER_NAME = "app";
@@ -136,7 +135,7 @@ public class GravitinoConnectorPluginManager {
.forEach(
file -> {
loadPlugin(pluginDir, file.getName());
- LOG.info("Load plugin {}/{} successful", pluginDir,
file.getName());
+ LOG.info("Load plugin %s/%s successful", pluginDir,
file.getName());
});
} catch (Exception e) {
throw new TrinoException(
@@ -149,7 +148,7 @@ public class GravitinoConnectorPluginManager {
File directory = new File(dirName);
File[] pluginFiles = directory.listFiles();
if (pluginFiles == null || pluginFiles.length == 0) {
- LOG.warn("Cannot load plugin {} from empty directory {}", pluginName,
dirName);
+ LOG.warn("Cannot load plugin %s from empty directory %s", pluginName,
dirName);
return;
}
List<URL> files =
@@ -183,6 +182,7 @@ public class GravitinoConnectorPluginManager {
"io.trino.spi.",
"com.fasterxml.jackson.annotation.",
"io.airlift.slice.",
+ "io.airlift.log.",
"org.openjdk.jol.",
"io.opentelemetry.api.",
"io.opentelemetry.context."));
@@ -191,13 +191,13 @@ public class GravitinoConnectorPluginManager {
ServiceLoader.load(Plugin.class, (ClassLoader) pluginClassLoader);
List<Plugin> pluginList = ImmutableList.copyOf(serviceLoader);
if (pluginList.isEmpty()) {
- LOG.warn("The {} plugin directory does not contain a connector SPI
interface", pluginName);
+ LOG.warn("The %s plugin directory does not contain a connector SPI
interface", pluginName);
return;
}
Plugin plugin = pluginList.get(0);
if (plugin.getConnectorFactories() == null
|| !plugin.getConnectorFactories().iterator().hasNext()) {
- LOG.warn("The {} plugin does not contain any ConnectorFactories",
pluginName);
+ LOG.warn("The %s plugin does not contain any ConnectorFactories",
pluginName);
return;
}
connectorPlugins.put(pluginName, pluginList.get(0));
@@ -235,7 +235,7 @@ public class GravitinoConnectorPluginManager {
try {
loadPluginByPom(artifactResolver.resolvePom(new File(v)), key);
} catch (Exception e) {
- LOG.error("Fatal error in load plugin by {}", v, e);
+ LOG.error(e, "Fatal error in load plugin by %s", v);
}
});
}
@@ -292,7 +292,7 @@ public class GravitinoConnectorPluginManager {
new ThreadContextClassLoader(plugin.getClass().getClassLoader())) {
ConnectorFactory connectorFactory =
plugin.getConnectorFactories().iterator().next();
Connector connector = connectorFactory.create(connectorName, config,
context);
- LOG.info("create connector {} with config {} successful",
connectorName, config);
+ LOG.info("create connector %s with config %s successful",
connectorName, config);
return connector;
}
} catch (Exception e) {
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoMetadata.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoMetadata.java
index 04a264e077..f05b557233 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoMetadata.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoMetadata.java
@@ -24,6 +24,7 @@ import static
org.apache.gravitino.trino.connector.GravitinoErrorCode.GRAVITINO_
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
+import io.airlift.log.Logger;
import io.airlift.slice.Slice;
import io.trino.spi.TrinoException;
import io.trino.spi.connector.AggregateFunction;
@@ -85,8 +86,6 @@ import
org.apache.gravitino.trino.connector.catalog.CatalogConnectorMetadata;
import
org.apache.gravitino.trino.connector.catalog.CatalogConnectorMetadataAdapter;
import org.apache.gravitino.trino.connector.metadata.GravitinoSchema;
import org.apache.gravitino.trino.connector.metadata.GravitinoTable;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* The GravitinoMetadata class provides operations for Apache Gravitino
metadata on the Gravitino
@@ -95,7 +94,7 @@ import org.slf4j.LoggerFactory;
*/
public abstract class GravitinoMetadata implements ConnectorMetadata {
- private static final Logger LOG =
LoggerFactory.getLogger(GravitinoMetadata.class);
+ private static final Logger LOG = Logger.get(GravitinoMetadata.class);
// The column handle name that will generate row IDs for the merge operation.
public static final String MERGE_ROW_ID = "$row_id";
@@ -285,7 +284,7 @@ public abstract class GravitinoMetadata implements
ConnectorMetadata {
try {
catalogConnectorMetadata.dropTable(tableName);
} catch (Exception dropException) {
- LOG.warn("Failed to drop table {} during CTAS cleanup", tableName,
dropException);
+ LOG.warn(dropException, "Failed to drop table %s during CTAS cleanup",
tableName);
}
throw e;
}
@@ -310,7 +309,7 @@ public abstract class GravitinoMetadata implements
ConnectorMetadata {
// (e.g., Hive 'format' is a String in Gravitino but HiveStorageFormat
enum internally).
// Returning empty is correct for non-bucketed CTAS.
LOG.debug(
- "Skipping internal getNewTableLayout due to property type mismatch:
{}", e.getMessage());
+ "Skipping internal getNewTableLayout due to property type mismatch:
%s", e.getMessage());
return Optional.empty();
}
}
@@ -858,7 +857,7 @@ public abstract class GravitinoMetadata implements
ConnectorMetadata {
}
return toLanguageFunctions(function);
} catch (NoSuchFunctionException e) {
- LOG.debug("Function {} not found in schema {}", name.getFunctionName(),
name.getSchemaName());
+ LOG.debug("Function %s not found in schema %s", name.getFunctionName(),
name.getSchemaName());
return List.of();
}
}
@@ -881,7 +880,7 @@ public abstract class GravitinoMetadata implements
ConnectorMetadata {
String signatureToken = buildSignatureToken(function.name(),
definition.parameters());
result.add(new LanguageFunction(signatureToken, sql, List.of(),
Optional.empty()));
} catch (TrinoException e) {
- LOG.warn("Failed to build signature token for function {}",
function.name(), e);
+ LOG.warn(e, "Failed to build signature token for function %s",
function.name());
}
}
}
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorManager.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorManager.java
index 9d477676af..045c5d80fb 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorManager.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorManager.java
@@ -20,6 +20,7 @@ package org.apache.gravitino.trino.connector.catalog;
import com.google.common.base.Preconditions;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import io.airlift.log.Logger;
import io.trino.spi.TrinoException;
import io.trino.spi.connector.ConnectorContext;
import java.util.Arrays;
@@ -44,8 +45,6 @@ import org.apache.gravitino.trino.connector.GravitinoConfig;
import org.apache.gravitino.trino.connector.GravitinoErrorCode;
import org.apache.gravitino.trino.connector.metadata.GravitinoCatalog;
import org.apache.gravitino.trino.connector.security.GravitinoAuthProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* This class has the following main functions:
@@ -58,7 +57,7 @@ import org.slf4j.LoggerFactory;
* </pre>
*/
public class CatalogConnectorManager {
- private static final Logger LOG =
LoggerFactory.getLogger(CatalogConnectorManager.class);
+ private static final Logger LOG = Logger.get(CatalogConnectorManager.class);
private static final int NUMBER_EXECUTOR_THREAD = 1;
private static final int LOAD_METALAKE_TIMEOUT = 60;
@@ -104,7 +103,7 @@ public class CatalogConnectorManager {
.setNameFormat("gravitino-connector-schedule-%d")
.setUncaughtExceptionHandler(
(thread, throwable) ->
- LOG.warn("{} uncaught exception:", thread.getName(),
throwable))
+ LOG.warn(throwable, "%s uncaught exception:",
thread.getName()))
.build());
}
@@ -119,7 +118,7 @@ public class CatalogConnectorManager {
if (client == null) {
String authType =
config.getClientConfig().getOrDefault(GravitinoAuthProvider.AUTH_TYPE_KEY,
"none");
- LOG.info("Building Gravitino client with authType: {}", authType);
+ LOG.info("Building Gravitino client with authType: %s", authType);
try {
this.gravitinoClient = GravitinoAuthProvider.build(config);
} catch (IllegalArgumentException e) {
@@ -197,14 +196,14 @@ public class CatalogConnectorManager {
for (String usedMetalake : usedMetalakes) {
try {
GravitinoMetalake metalake = metalakes.get(usedMetalake);
- LOG.debug("Load metalake: {}", usedMetalake);
+ LOG.debug("Load metalake: %s", usedMetalake);
loadCatalogs(metalake);
} catch (Exception e) {
- LOG.error("Load Metalake {} failed.", usedMetalake, e);
+ LOG.error(e, "Load Metalake %s failed.", usedMetalake);
}
}
} catch (Exception e) {
- LOG.error("Error when loading metalake", e);
+ LOG.error(e, "Error when loading metalake");
}
}
@@ -233,11 +232,11 @@ public class CatalogConnectorManager {
.filter(id -> !skipCatalog(getTrinoCatalogName(metalake.name(),
id)))
.collect(Collectors.toList());
} catch (Exception e) {
- LOG.error("Failed to list catalogs in metalake {}.", metalake.name(), e);
+ LOG.error(e, "Failed to list catalogs in metalake %s.", metalake.name());
return;
}
- LOG.debug("Load metalake {}'s catalogs. catalogs: {}.", metalake.name(),
catalogNames);
+ LOG.debug("Load metalake %s's catalogs. catalogs: %s.", metalake.name(),
catalogNames);
// Delete those catalogs that have been deleted in Gravitino server
Set<String> catalogNameStrings =
@@ -253,7 +252,7 @@ public class CatalogConnectorManager {
try {
unloadCatalog(entry.getValue().getCatalog());
} catch (Exception e) {
- LOG.error("Failed to remove catalog {}.", entry.getKey(), e);
+ LOG.error(e, "Failed to remove catalog %s.", entry.getKey());
}
}
}
@@ -280,13 +279,11 @@ public class CatalogConnectorManager {
}
} catch (UnsupportedOperationException e) {
LOG.warn(
- "Unsupported catalog type for catalog {} in metalake {}:
{}",
- catalogName,
- metalake.name(),
- e.getMessage());
+ "Unsupported catalog type for catalog %s in metalake %s:
%s",
+ catalogName, metalake.name(), e.getMessage());
} catch (Exception e) {
LOG.error(
- "Failed to load metalake {}'s catalog {}.",
metalake.name(), catalogName, e);
+ e, "Failed to load metalake %s's catalog %s.",
metalake.name(), catalogName);
}
});
}
@@ -302,12 +299,12 @@ public class CatalogConnectorManager {
catalogConnectors.remove(catalogFullName);
loadCatalogImpl(catalog);
- LOG.info("Update catalog '{}' in metalake {} successfully.", catalog,
catalog.getMetalake());
+ LOG.info("Update catalog '%s' in metalake %s successfully.", catalog,
catalog.getMetalake());
}
private void loadCatalog(GravitinoCatalog catalog) {
loadCatalogImpl(catalog);
- LOG.info("Load catalog {} in metalake {} successfully.", catalog,
catalog.getMetalake());
+ LOG.info("Load catalog %s in metalake %s successfully.", catalog,
catalog.getMetalake());
}
private void loadCatalogImpl(GravitinoCatalog catalog) {
@@ -316,7 +313,7 @@ public class CatalogConnectorManager {
} catch (Exception e) {
String message =
String.format("Failed to create internal catalog connector. The
catalog is: %s", catalog);
- LOG.error(message, e);
+ LOG.error(e, message);
throw new TrinoException(
GravitinoErrorCode.GRAVITINO_CREATE_INTERNAL_CONNECTOR_ERROR,
message, e);
}
@@ -327,9 +324,8 @@ public class CatalogConnectorManager {
catalogRegister.unregisterCatalog(catalogFullName);
catalogConnectors.remove(catalogFullName);
LOG.info(
- "Remove catalog '{}' in metalake {} successfully.",
- catalog.getName(),
- catalog.getMetalake());
+ "Remove catalog '%s' in metalake %s successfully.",
+ catalog.getName(), catalog.getMetalake());
}
/**
@@ -438,10 +434,10 @@ public class CatalogConnectorManager {
CatalogConnectorContext connectorContext = builder.build();
String fullCatalogName = getTrinoCatalogName(catalog);
catalogConnectors.put(fullCatalogName, connectorContext);
- LOG.info("Create connector {} successful", connectorName);
+ LOG.info("Create connector %s successful", connectorName);
return connectorContext;
} catch (Exception e) {
- LOG.error("Failed to create connector: {}", connectorName, e);
+ LOG.error(e, "Failed to create connector: %s", connectorName);
throw new TrinoException(
GravitinoErrorCode.GRAVITINO_OPERATION_FAILED,
"Failed to create connector: " + connectorName,
@@ -480,7 +476,7 @@ public class CatalogConnectorManager {
for (Pattern pattern : config.getSkipCatalogPatterns()) {
if (pattern.matcher(catalogName).matches()) {
LOG.debug(
- "Skip catalog {} with config
`gravitino.trino.skip-catalog-patterns`.", catalogName);
+ "Skip catalog %s with config
`gravitino.trino.skip-catalog-patterns`.", catalogName);
return true;
}
}
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorMetadata.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorMetadata.java
index 7fd83e7575..4e71662872 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorMetadata.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorMetadata.java
@@ -19,6 +19,7 @@
package org.apache.gravitino.trino.connector.catalog;
import com.google.common.base.Strings;
+import io.airlift.log.Logger;
import io.trino.spi.TrinoException;
import io.trino.spi.connector.SchemaTableName;
import java.util.Arrays;
@@ -47,13 +48,11 @@ import
org.apache.gravitino.trino.connector.GravitinoErrorCode;
import org.apache.gravitino.trino.connector.metadata.GravitinoColumn;
import org.apache.gravitino.trino.connector.metadata.GravitinoSchema;
import org.apache.gravitino.trino.connector.metadata.GravitinoTable;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/** This class implements Apache Gravitino metadata operators. */
public class CatalogConnectorMetadata {
- private static final Logger LOG =
LoggerFactory.getLogger(CatalogConnectorMetadata.class);
+ private static final Logger LOG = Logger.get(CatalogConnectorMetadata.class);
private static final String CATALOG_DOES_NOT_EXIST_MSG = "Catalog does not
exist";
private static final String SCHEMA_DOES_NOT_EXIST_MSG = "Schema does not
exist";
@@ -80,7 +79,7 @@ public class CatalogConnectorMetadata {
try {
fc = catalog.asFunctionCatalog();
} catch (UnsupportedOperationException e) {
- LOG.debug("Catalog {} does not support function operations",
catalogName);
+ LOG.debug("Catalog %s does not support function operations",
catalogName);
}
this.functionCatalog = fc;
} catch (NoSuchCatalogException e) {
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorMetadataAdapter.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorMetadataAdapter.java
index cb6f54110b..d61f1d79e8 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorMetadataAdapter.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorMetadataAdapter.java
@@ -18,6 +18,7 @@
*/
package org.apache.gravitino.trino.connector.catalog;
+import io.airlift.log.Logger;
import io.trino.spi.connector.ColumnMetadata;
import io.trino.spi.connector.ConnectorTableMetadata;
import io.trino.spi.connector.ConnectorTableProperties;
@@ -35,8 +36,6 @@ import
org.apache.gravitino.trino.connector.metadata.GravitinoColumn;
import org.apache.gravitino.trino.connector.metadata.GravitinoSchema;
import org.apache.gravitino.trino.connector.metadata.GravitinoTable;
import org.apache.gravitino.trino.connector.util.GeneralDataTypeTransformer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* This interface is used to handle different parts of catalog metadata from
different catalog
@@ -44,7 +43,7 @@ import org.slf4j.LoggerFactory;
*/
public class CatalogConnectorMetadataAdapter {
- private static final Logger LOG =
LoggerFactory.getLogger(CatalogConnectorMetadataAdapter.class);
+ private static final Logger LOG =
Logger.get(CatalogConnectorMetadataAdapter.class);
/** The list of schema properties supported by this catalog connector. */
protected final List<PropertyMetadata<?>> schemaProperties;
@@ -217,7 +216,7 @@ public class CatalogConnectorMetadataAdapter {
if (properties.containsKey(name)) {
validProperties.put(name, properties.get(name));
} else {
- LOG.warn("Property {} is not defined in Trino, we will ignore it",
name);
+ LOG.warn("Property %s is not defined in Trino, we will ignore it",
name);
}
}
return validProperties;
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogPropertyConverter.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogPropertyConverter.java
index adb6d11d43..b42ce2a9c5 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogPropertyConverter.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogPropertyConverter.java
@@ -20,14 +20,13 @@
package org.apache.gravitino.trino.connector.catalog;
import com.google.common.collect.ImmutableMap;
+import io.airlift.log.Logger;
import java.util.HashMap;
import java.util.Map;
import org.apache.gravitino.catalog.property.PropertyConverter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
public class CatalogPropertyConverter extends PropertyConverter {
- private static final Logger LOG =
LoggerFactory.getLogger(PropertyConverter.class);
+ private static final Logger LOG = Logger.get(CatalogPropertyConverter.class);
private static final String TRINO_PROPERTIES_PREFIX = "trino.bypass.";
@@ -59,7 +58,7 @@ public class CatalogPropertyConverter extends
PropertyConverter {
if (engineKey != null) {
engineProperties.put(engineKey, entry.getValue());
} else {
- LOG.info("Property {} is not supported by engine", entry.getKey());
+ LOG.info("Property %s is not supported by engine", entry.getKey());
}
}
// trino.bypass properties will be skipped when the catalog properties is
defined by Gravitino
@@ -69,7 +68,7 @@ public class CatalogPropertyConverter extends
PropertyConverter {
if (!engineProperties.containsKey(key)) {
engineProperties.put(key, entry.getValue());
} else {
- LOG.info("Property {} which with trino.bypass prefix is skipped",
key);
+ LOG.info("Property %s which with trino.bypass prefix is skipped",
key);
}
}
}
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogRegister.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogRegister.java
index faca9c2499..fab43b70ed 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogRegister.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogRegister.java
@@ -23,6 +23,7 @@ import static
org.apache.gravitino.trino.connector.GravitinoConfig.GRAVITINO_DYN
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableSet;
+import io.airlift.log.Logger;
import io.trino.jdbc.TrinoDriver;
import io.trino.spi.TrinoException;
import java.io.File;
@@ -39,8 +40,6 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.gravitino.trino.connector.GravitinoConfig;
import org.apache.gravitino.trino.connector.GravitinoErrorCode;
import org.apache.gravitino.trino.connector.metadata.GravitinoCatalog;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* This class dynamically register the Catalog managed by Apache Gravitino
into Trino using Trino
@@ -48,7 +47,7 @@ import org.slf4j.LoggerFactory;
*/
public class CatalogRegister {
- private static final Logger LOG =
LoggerFactory.getLogger(CatalogRegister.class);
+ private static final Logger LOG = Logger.get(CatalogRegister.class);
private static final int EXECUTE_QUERY_MAX_RETRIES = 6;
private static final int EXECUTE_QUERY_BACKOFF_TIME_SECOND = 5;
@@ -74,7 +73,7 @@ public class CatalogRegister {
isStarted = statement.execute(command);
return isStarted;
} catch (Exception e) {
- LOG.warn("Trino server is not started: {}", e.getMessage());
+ LOG.warn("Trino server is not started: %s", e.getMessage());
return false;
}
}
@@ -182,13 +181,13 @@ public class CatalogRegister {
Map<String, String> extraProperties = config.getTrinoJdbcExtraProperties();
if (!extraProperties.isEmpty()) {
// Log the names only, the values may contain credentials.
- LOG.debug("Applying extra Trino JDBC properties: {}",
extraProperties.keySet());
+ LOG.debug("Applying extra Trino JDBC properties: %s",
extraProperties.keySet());
extraProperties.keySet().stream()
.filter(key -> key.startsWith("SSL") && properties.containsKey(key))
.forEach(
key ->
LOG.warn(
- "Extra Trino JDBC property '{}' overrides the TLS
setting derived from the "
+ "Extra Trino JDBC property '%s' overrides the TLS
setting derived from the "
+ "dedicated configuration and is applied without
validation",
key));
properties.putAll(extraProperties);
@@ -349,12 +348,12 @@ public class CatalogRegister {
}
String createCatalogCommand = generateCreateCatalogCommand(name,
catalog);
executeSql(createCatalogCommand);
- LOG.info("Register catalog {} successfully: {}", name,
createCatalogCommand);
+ LOG.info("Register catalog %s successfully: %s", name,
createCatalogCommand);
} catch (SQLException e) {
throw new TrinoException(GravitinoErrorCode.GRAVITINO_RUNTIME_ERROR,
e.getMessage(), e);
} catch (Exception e) {
String message = String.format("Failed to register catalog %s", name);
- LOG.error(message);
+ LOG.error(e, message);
throw new TrinoException(GravitinoErrorCode.GRAVITINO_RUNTIME_ERROR,
message, e);
}
}
@@ -384,7 +383,7 @@ public class CatalogRegister {
throw e;
} catch (Exception e) {
failedException = e;
- LOG.warn("Failed to execute command: {}", showCatalogCommand, e);
+ LOG.warn(e, "Failed to execute command: %s", showCatalogCommand);
Thread.sleep(EXECUTE_QUERY_BACKOFF_TIME_SECOND * 1000);
}
}
@@ -410,7 +409,7 @@ public class CatalogRegister {
throw e;
} catch (Exception e) {
failedException = e;
- LOG.warn("Failed to execute command: {}", sql, e);
+ LOG.warn(e, "Failed to execute command: %s", sql);
Thread.sleep(EXECUTE_QUERY_BACKOFF_TIME_SECOND * 1000);
}
}
@@ -429,15 +428,15 @@ public class CatalogRegister {
public void unregisterCatalog(String name) {
try {
if (!checkCatalogExist(name)) {
- LOG.warn("Catalog {} does not exist", name);
+ LOG.warn("Catalog %s does not exist", name);
return;
}
String dropCatalogCommand = generateDropCatalogCommand(name);
executeSql(dropCatalogCommand);
- LOG.info("Unregister catalog {} successfully: {}", name,
dropCatalogCommand);
+ LOG.info("Unregister catalog %s successfully: %s", name,
dropCatalogCommand);
} catch (Exception e) {
String message = String.format("Failed to unregister catalog %s", name);
- LOG.error(message);
+ LOG.error(e, message);
throw new TrinoException(GravitinoErrorCode.GRAVITINO_RUNTIME_ERROR,
message, e);
}
}
@@ -449,7 +448,7 @@ public class CatalogRegister {
connection.close();
}
} catch (SQLException e) {
- LOG.error("Failed to close connection", e);
+ LOG.error(e, "Failed to close connection");
}
}
}
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/DefaultCatalogConnectorFactory.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/DefaultCatalogConnectorFactory.java
index 29b2979da2..890293384a 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/DefaultCatalogConnectorFactory.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/DefaultCatalogConnectorFactory.java
@@ -18,6 +18,7 @@
*/
package org.apache.gravitino.trino.connector.catalog;
+import io.airlift.log.Logger;
import io.trino.spi.TrinoException;
import java.util.HashMap;
import java.util.Set;
@@ -31,12 +32,10 @@ import
org.apache.gravitino.trino.connector.catalog.jdbc.postgresql.PostgreSQLCo
import
org.apache.gravitino.trino.connector.catalog.jdbc.trino.TrinoClusterConnectorAdapter;
import
org.apache.gravitino.trino.connector.catalog.memory.MemoryConnectorAdapter;
import org.apache.gravitino.trino.connector.metadata.GravitinoCatalog;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/** This class use to create CatalogConnectorContext instance by given
catalog. */
public class DefaultCatalogConnectorFactory implements CatalogConnectorFactory
{
- private static final Logger LOG =
LoggerFactory.getLogger(DefaultCatalogConnectorFactory.class);
+ private static final Logger LOG =
Logger.get(DefaultCatalogConnectorFactory.class);
private static final String GLUE_CONNECTOR_PROVIDER_NAME = "glue";
private static final String HIVE_CONNECTOR_PROVIDER_NAME = "hive";
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/jdbc/mysql/MySQLMetadataAdapter.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/jdbc/mysql/MySQLMetadataAdapter.java
index 555170ef46..98f1606f65 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/jdbc/mysql/MySQLMetadataAdapter.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/jdbc/mysql/MySQLMetadataAdapter.java
@@ -56,7 +56,6 @@ import
org.apache.gravitino.trino.connector.catalog.CatalogConnectorMetadataAdap
import
org.apache.gravitino.trino.connector.catalog.jdbc.JdbcColumnDefaultValueConverter;
import org.apache.gravitino.trino.connector.metadata.GravitinoColumn;
import org.apache.gravitino.trino.connector.metadata.GravitinoTable;
-import org.apache.logging.log4j.util.Strings;
/** Transforming Apache Gravitino MySQL metadata to Trino. */
public class MySQLMetadataAdapter extends CatalogConnectorMetadataAdapter {
@@ -281,7 +280,7 @@ public class MySQLMetadataAdapter extends
CatalogConnectorMetadataAdapter {
Arrays.stream(index.fieldNames())
.flatMap(Arrays::stream)
.collect(Collectors.toUnmodifiableList());
- uniqueKeys.add(String.format("%s:%s", index.name(),
Strings.join(columns, ',')));
+ uniqueKeys.add(String.format("%s:%s", index.name(),
StringUtils.join(columns, ',')));
break;
default:
throw new UnsupportedOperationException("Unsupported index type: "
+ index.type());
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/security/GravitinoAuthProvider.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/security/GravitinoAuthProvider.java
index 2f68a9a7b4..a195ddef64 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/security/GravitinoAuthProvider.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/security/GravitinoAuthProvider.java
@@ -19,6 +19,7 @@
package org.apache.gravitino.trino.connector.security;
import com.google.common.base.Preconditions;
+import io.airlift.log.Logger;
import io.trino.spi.TrinoException;
import io.trino.spi.connector.ConnectorSession;
import java.io.File;
@@ -31,8 +32,6 @@ import
org.apache.gravitino.client.GravitinoClientConfiguration;
import org.apache.gravitino.client.KerberosTokenProvider;
import org.apache.gravitino.trino.connector.GravitinoConfig;
import org.apache.gravitino.trino.connector.GravitinoErrorCode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Builds a {@link GravitinoAdminClient} with the appropriate authentication
provider based on the
@@ -41,7 +40,7 @@ import org.slf4j.LoggerFactory;
*/
public class GravitinoAuthProvider {
- private static final Logger LOG =
LoggerFactory.getLogger(GravitinoAuthProvider.class);
+ private static final Logger LOG = Logger.get(GravitinoAuthProvider.class);
/** Authentication type configuration key. */
public static final String AUTH_TYPE_KEY =
@@ -329,7 +328,7 @@ public class GravitinoAuthProvider {
// Remove leading slash from path if present
String normalizedPath = path.startsWith("/") ? path.substring(1) : path;
- LOG.info("Initializing OAuth2 token provider with server URI: {}",
serverUri);
+ LOG.info("Initializing OAuth2 token provider with server URI: %s",
serverUri);
return DefaultOAuth2TokenProvider.builder()
.withUri(serverUri)
.withCredential(credential)
@@ -373,7 +372,7 @@ public class GravitinoAuthProvider {
kerberosBuilder.withKeyTabFile(keytabFile);
} else {
LOG.warn(
- "No keytab file configured for Kerberos authentication ({}). "
+ "No keytab file configured for Kerberos authentication (%s). "
+ "Authentication will fail at runtime unless Kerberos
credentials are already "
+ "present in the current security context.",
KERBEROS_KEYTAB_FILE_PATH_KEY);
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/system/storedprocedure/AlterCatalogStoredProcedure.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/system/storedprocedure/AlterCatalogStoredProcedure.java
index 7126568911..55f479ca56 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/system/storedprocedure/AlterCatalogStoredProcedure.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/system/storedprocedure/AlterCatalogStoredProcedure.java
@@ -20,6 +20,7 @@ package
org.apache.gravitino.trino.connector.system.storedprocedure;
import static io.trino.spi.type.VarcharType.VARCHAR;
+import io.airlift.log.Logger;
import io.trino.spi.TrinoException;
import io.trino.spi.block.ArrayBlock;
import io.trino.spi.procedure.Procedure;
@@ -42,8 +43,6 @@ import
org.apache.gravitino.trino.connector.catalog.CatalogConnectorContext;
import org.apache.gravitino.trino.connector.catalog.CatalogConnectorManager;
import org.apache.gravitino.trino.connector.metadata.GravitinoCatalog;
import org.apache.gravitino.trino.connector.system.table.GravitinoSystemTable;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Stored procedure implementation for altering an existing catalog in
Gravitino.
@@ -51,7 +50,7 @@ import org.slf4j.LoggerFactory;
* <p>This procedure allows setting and removing catalog properties
dynamically.
*/
public class AlterCatalogStoredProcedure extends GravitinoStoredProcedure {
- private static final Logger LOG =
LoggerFactory.getLogger(AlterCatalogStoredProcedure.class);
+ private static final Logger LOG =
Logger.get(AlterCatalogStoredProcedure.class);
private final CatalogConnectorManager catalogConnectorManager;
private final String metalake;
@@ -147,7 +146,7 @@ public class AlterCatalogStoredProcedure extends
GravitinoStoredProcedure {
GravitinoErrorCode.GRAVITINO_OPERATION_FAILED,
"Update catalog failed due to the reloading process fails");
}
- LOG.info("Alter catalog {} in metalake {} successfully.", catalogName,
metalake);
+ LOG.info("Alter catalog %s in metalake %s successfully.", catalogName,
metalake);
} catch (NoSuchMetalakeException e) {
throw new TrinoException(
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/system/storedprocedure/CreateCatalogStoredProcedure.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/system/storedprocedure/CreateCatalogStoredProcedure.java
index 0de2383d95..48c67c729c 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/system/storedprocedure/CreateCatalogStoredProcedure.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/system/storedprocedure/CreateCatalogStoredProcedure.java
@@ -21,6 +21,7 @@ package
org.apache.gravitino.trino.connector.system.storedprocedure;
import static io.trino.spi.type.BooleanType.BOOLEAN;
import static io.trino.spi.type.VarcharType.VARCHAR;
+import io.airlift.log.Logger;
import io.trino.spi.TrinoException;
import io.trino.spi.procedure.Procedure;
import io.trino.spi.type.MapType;
@@ -37,8 +38,6 @@ import
org.apache.gravitino.exceptions.NoSuchMetalakeException;
import org.apache.gravitino.trino.connector.GravitinoErrorCode;
import org.apache.gravitino.trino.connector.catalog.CatalogConnectorManager;
import org.apache.gravitino.trino.connector.system.table.GravitinoSystemTable;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Stored procedure implementation for creating a new catalog in Gravitino.
@@ -46,7 +45,7 @@ import org.slf4j.LoggerFactory;
* <p>This procedure allows creating a new catalog with specified properties
and provider.
*/
public class CreateCatalogStoredProcedure extends GravitinoStoredProcedure {
- private static final Logger LOG =
LoggerFactory.getLogger(CreateCatalogStoredProcedure.class);
+ private static final Logger LOG =
Logger.get(CreateCatalogStoredProcedure.class);
private final CatalogConnectorManager catalogConnectorManager;
private final String metalake;
@@ -122,7 +121,7 @@ public class CreateCatalogStoredProcedure extends
GravitinoStoredProcedure {
"Create catalog failed due to the loading process fails");
}
- LOG.info("Create catalog {} in metalake {} successfully.", catalogName,
metalake);
+ LOG.info("Create catalog %s in metalake %s successfully.", catalogName,
metalake);
} catch (NoSuchMetalakeException e) {
throw new TrinoException(
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/system/storedprocedure/DropCatalogStoredProcedure.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/system/storedprocedure/DropCatalogStoredProcedure.java
index 85feea0072..c6646de1f0 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/system/storedprocedure/DropCatalogStoredProcedure.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/system/storedprocedure/DropCatalogStoredProcedure.java
@@ -21,6 +21,7 @@ package
org.apache.gravitino.trino.connector.system.storedprocedure;
import static io.trino.spi.type.BooleanType.BOOLEAN;
import static io.trino.spi.type.VarcharType.VARCHAR;
+import io.airlift.log.Logger;
import io.trino.spi.TrinoException;
import io.trino.spi.procedure.Procedure;
import java.lang.invoke.MethodHandle;
@@ -33,8 +34,6 @@ import
org.apache.gravitino.trino.connector.GravitinoErrorCode;
import org.apache.gravitino.trino.connector.catalog.CatalogConnectorContext;
import org.apache.gravitino.trino.connector.catalog.CatalogConnectorManager;
import org.apache.gravitino.trino.connector.system.table.GravitinoSystemTable;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Stored procedure implementation for dropping an existing catalog in
Gravitino.
@@ -42,7 +41,7 @@ import org.slf4j.LoggerFactory;
* <p>This procedure allows dropping a catalog with optional ignoreNotExist
flag.
*/
public class DropCatalogStoredProcedure extends GravitinoStoredProcedure {
- private static final Logger LOG =
LoggerFactory.getLogger(DropCatalogStoredProcedure.class);
+ private static final Logger LOG =
Logger.get(DropCatalogStoredProcedure.class);
private final CatalogConnectorManager catalogConnectorManager;
private final String metalake;
@@ -103,9 +102,8 @@ public class DropCatalogStoredProcedure extends
GravitinoStoredProcedure {
"Catalog " + NameIdentifier.of(metalake, catalogName) + " not
exists.");
}
LOG.info(
- "Drop catalog {} in metalake {} from server (no local connector)
successfully.",
- catalogName,
- metalake);
+ "Drop catalog %s in metalake %s from server (no local connector)
successfully.",
+ catalogName, metalake);
return;
}
@@ -122,7 +120,7 @@ public class DropCatalogStoredProcedure extends
GravitinoStoredProcedure {
"Drop catalog failed due to the reloading process fails");
}
- LOG.info("Drop catalog {} in metalake {} successfully.", catalogName,
metalake);
+ LOG.info("Drop catalog %s in metalake %s successfully.", catalogName,
metalake);
} catch (NoSuchMetalakeException e) {
throw new TrinoException(
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/util/json/JsonCodec.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/util/json/JsonCodec.java
index 00de547b70..0be9dfe73f 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/util/json/JsonCodec.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/util/json/JsonCodec.java
@@ -32,6 +32,7 @@ import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.module.paramnames.ParameterNamesModule;
import com.google.common.annotations.VisibleForTesting;
import io.airlift.json.RecordAutoDetectModule;
+import io.airlift.log.Logger;
import io.trino.spi.TrinoException;
import io.trino.spi.block.Block;
import io.trino.spi.block.BlockEncodingSerde;
@@ -54,8 +55,6 @@ import java.util.Collections;
import java.util.Set;
import java.util.function.Function;
import org.apache.gravitino.trino.connector.GravitinoConnectorPluginManager;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Utility class for JSON serialization and deserialization in the Gravitino
Trino connector.
@@ -63,7 +62,7 @@ import org.slf4j.LoggerFactory;
*/
public class JsonCodec {
- private static final Logger LOG = LoggerFactory.getLogger(JsonCodec.class);
+ private static final Logger LOG = Logger.get(JsonCodec.class);
private static volatile ObjectMapper mapper;
private static volatile Type jsonType;
@@ -191,7 +190,7 @@ public class JsonCodec {
try {
Object instance = ctor.newInstance(args);
- LOG.debug("Instantiated BlockEncodingManager with fallback constructor
{}", ctor);
+ LOG.debug("Instantiated BlockEncodingManager with fallback constructor
%s", ctor);
return instance;
} catch (ReflectiveOperationException | RuntimeException e) {
lastError =