This is an automated email from the ASF dual-hosted git repository.
crazyhzm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/master by this push:
new e9805bb1a8 [MNG-8512] Fix org.slf4j.simpleLogger.defaultLogLevel
Configuration conflict (#2042)
e9805bb1a8 is described below
commit e9805bb1a81a4dc0eb5ac93f8a5129741c1b6b41
Author: Jermaine Hua <[email protected]>
AuthorDate: Wed Jan 22 22:39:19 2025 +0800
[MNG-8512] Fix org.slf4j.simpleLogger.defaultLogLevel Configuration
conflict (#2042)
Signed-off-by: crazyhzm <[email protected]>
---
.../maven/cling/logging/impl/MavenSimpleConfiguration.java | 13 ++++++++++++-
.../java/org/apache/maven/slf4j/MavenLoggerFactory.java | 3 ++-
.../main/java/org/apache/maven/slf4j/MavenSimpleLogger.java | 2 ++
3 files changed, 16 insertions(+), 2 deletions(-)
diff --git
a/impl/maven-cli/src/main/java/org/apache/maven/cling/logging/impl/MavenSimpleConfiguration.java
b/impl/maven-cli/src/main/java/org/apache/maven/cling/logging/impl/MavenSimpleConfiguration.java
index e7fb25b39d..af17432a13 100644
---
a/impl/maven-cli/src/main/java/org/apache/maven/cling/logging/impl/MavenSimpleConfiguration.java
+++
b/impl/maven-cli/src/main/java/org/apache/maven/cling/logging/impl/MavenSimpleConfiguration.java
@@ -20,7 +20,9 @@
import org.apache.maven.cling.logging.BaseSlf4jConfiguration;
import org.apache.maven.slf4j.MavenLoggerFactory;
+import org.apache.maven.slf4j.MavenSimpleLogger;
import org.slf4j.ILoggerFactory;
+import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
@@ -29,6 +31,8 @@
* @since 3.1.0
*/
public class MavenSimpleConfiguration extends BaseSlf4jConfiguration {
+ private static final Logger LOGGER =
LoggerFactory.getLogger(MavenSimpleConfiguration.class);
+
@Override
public void setRootLoggerLevel(Level level) {
String value =
@@ -37,7 +41,14 @@ public void setRootLoggerLevel(Level level) {
case INFO -> "info";
default -> "error";
};
- System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", value);
+
+ String current =
System.setProperty(MavenSimpleLogger.DEFAULT_LOG_LEVEL_KEY, value);
+ if (current != null && !value.equalsIgnoreCase(current)) {
+ LOGGER.info(
+ "System property '" +
MavenSimpleLogger.DEFAULT_LOG_LEVEL_KEY + "' is already set to '" + current
+ + "' - ignoring system property and get log level
from -X/-e/-q options, log level will be set to"
+ + value);
+ }
}
@Override
diff --git
a/impl/maven-logging/src/main/java/org/apache/maven/slf4j/MavenLoggerFactory.java
b/impl/maven-logging/src/main/java/org/apache/maven/slf4j/MavenLoggerFactory.java
index 27dc2ee30a..fb3df18f02 100644
---
a/impl/maven-logging/src/main/java/org/apache/maven/slf4j/MavenLoggerFactory.java
+++
b/impl/maven-logging/src/main/java/org/apache/maven/slf4j/MavenLoggerFactory.java
@@ -21,13 +21,14 @@
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
+import org.apache.maven.logging.api.LogLevelRecorder;
import org.slf4j.ILoggerFactory;
import org.slf4j.Logger;
/**
* LogFactory for Maven which can create a simple logger or one which, if set,
fails the build on a severity threshold.
*/
-public class MavenLoggerFactory implements
org.apache.maven.logging.api.LogLevelRecorder, ILoggerFactory {
+public class MavenLoggerFactory implements LogLevelRecorder, ILoggerFactory {
final DefaultLogLevelRecorder logLevelRecorder = new
DefaultLogLevelRecorder();
final ConcurrentMap<String, Logger> loggerMap = new ConcurrentHashMap<>();
diff --git
a/impl/maven-logging/src/main/java/org/apache/maven/slf4j/MavenSimpleLogger.java
b/impl/maven-logging/src/main/java/org/apache/maven/slf4j/MavenSimpleLogger.java
index 17927d9ec6..9f4e3be251 100644
---
a/impl/maven-logging/src/main/java/org/apache/maven/slf4j/MavenSimpleLogger.java
+++
b/impl/maven-logging/src/main/java/org/apache/maven/slf4j/MavenSimpleLogger.java
@@ -41,6 +41,8 @@ public class MavenSimpleLogger extends MavenBaseLogger {
static Consumer<String> logSink;
+ public static final String DEFAULT_LOG_LEVEL_KEY =
"org.slf4j.simpleLogger.defaultLogLevel";
+
public static void setLogSink(Consumer<String> logSink) {
MavenSimpleLogger.logSink = logSink;
}