This is an automated email from the ASF dual-hosted git repository.
gnodet 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 21121d8f6c [MNG-8503] Configure logging using maven.logger.*
properties rather than org.slf4j.simpleLogger.* (#2048)
21121d8f6c is described below
commit 21121d8f6ce70336daeadf8d91c5566ea81e27e3
Author: Guillaume Nodet <[email protected]>
AuthorDate: Mon Jan 27 15:09:46 2025 +0100
[MNG-8503] Configure logging using maven.logger.* properties rather than
org.slf4j.simpleLogger.* (#2048)
---
...lelogger.properties => maven.logger.properties} | 22 +-
.../main/java/org/apache/maven/api/Constants.java | 112 +++++++
.../logging/impl/MavenSimpleConfiguration.java | 6 +-
.../org/apache/maven/slf4j/MavenBaseLogger.java | 64 ++--
.../maven/slf4j/SimpleLoggerConfiguration.java | 79 ++++-
.../maven/slf4j/MavenBaseLoggerTimestampTest.java | 21 +-
src/site/markdown/configuration.properties | 322 +++++++++++++--------
src/site/markdown/configuration.yaml | 66 +++++
src/site/markdown/maven-configuration.md | 11 +
9 files changed, 491 insertions(+), 212 deletions(-)
diff --git
a/apache-maven/src/assembly/maven/conf/logging/simplelogger.properties
b/apache-maven/src/assembly/maven/conf/logging/maven.logger.properties
similarity index 63%
rename from apache-maven/src/assembly/maven/conf/logging/simplelogger.properties
rename to apache-maven/src/assembly/maven/conf/logging/maven.logger.properties
index 8c4a5d1e4b..18c71c687c 100644
--- a/apache-maven/src/assembly/maven/conf/logging/simplelogger.properties
+++ b/apache-maven/src/assembly/maven/conf/logging/maven.logger.properties
@@ -15,16 +15,16 @@
# specific language governing permissions and limitations
# under the License.
-org.slf4j.simpleLogger.defaultLogLevel=info
-org.slf4j.simpleLogger.showDateTime=false
-org.slf4j.simpleLogger.showThreadName=false
-org.slf4j.simpleLogger.showLogName=false
-org.slf4j.simpleLogger.logFile=System.out
-org.slf4j.simpleLogger.cacheOutputStream=true
-org.slf4j.simpleLogger.levelInBrackets=true
-org.slf4j.simpleLogger.log.Sisu=info
-org.slf4j.simpleLogger.warnLevelString=WARNING
+maven.logger.defaultLogLevel=info
+maven.logger.showDateTime=false
+maven.logger.showThreadName=false
+maven.logger.showLogName=false
+maven.logger.logFile=System.out
+maven.logger.cacheOutputStream=true
+maven.logger.levelInBrackets=true
+maven.logger.log.Sisu=info
+maven.logger.warnLevelString=WARNING
# MNG-6181: mvn -X also prints all debug logging from HttpClient
-org.slf4j.simpleLogger.log.org.apache.http=off
-org.slf4j.simpleLogger.log.org.apache.http.wire=off
+maven.logger.log.org.apache.http=off
+maven.logger.log.org.apache.http.wire=off
diff --git
a/api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java
b/api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java
index f3e76f891a..76575ef131 100644
--- a/api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java
+++ b/api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java
@@ -453,5 +453,117 @@ public final class Constants {
@Config(type = "java.lang.Integer", defaultValue = "100")
public static final String MAVEN_BUILDER_MAX_PROBLEMS =
"maven.builder.maxProblems";
+ /**
+ * All system properties used by Maven Logger start with this prefix.
+ *
+ * @since 4.0.0
+ */
+ public static final String MAVEN_LOGGER_PREFIX = "maven.logger.";
+
+ /**
+ * Default log level for all instances of SimpleLogger. Must be one of
("trace", "debug", "info",
+ * "warn", "error" or "off"). If not specified, defaults to "info".
+ *
+ * @since 4.0.0
+ */
+ @Config
+ public static final String MAVEN_LOGGER_DEFAULT_LOG_LEVEL =
MAVEN_LOGGER_PREFIX + "defaultLogLevel";
+
+ /**
+ * Set to true if you want the current date and time to be included in
output messages. Default is false.
+ *
+ * @since 4.0.0
+ */
+ @Config(type = "java.lang.Boolean", defaultValue = "false")
+ public static final String MAVEN_LOGGER_SHOW_DATE_TIME =
MAVEN_LOGGER_PREFIX + "showDateTime";
+
+ /**
+ * The date and time format to be used in the output messages. The pattern
describing the date and
+ * time format is defined by SimpleDateFormat. If the format is not
specified or is invalid, the
+ * number of milliseconds since start up will be output.
+ *
+ * @since 4.0.0
+ */
+ @Config
+ public static final String MAVEN_LOGGER_DATE_TIME_FORMAT =
MAVEN_LOGGER_PREFIX + "dateTimeFormat";
+
+ /**
+ * If you would like to output the current thread id, then set to true.
Defaults to false.
+ *
+ * @since 4.0.0
+ */
+ @Config(type = "java.lang.Boolean", defaultValue = "false")
+ public static final String MAVEN_LOGGER_SHOW_THREAD_ID =
MAVEN_LOGGER_PREFIX + "showThreadId";
+
+ /**
+ * Set to true if you want to output the current thread name. Defaults to
true.
+ *
+ * @since 4.0.0
+ */
+ @Config(type = "java.lang.Boolean", defaultValue = "true")
+ public static final String MAVEN_LOGGER_SHOW_THREAD_NAME =
MAVEN_LOGGER_PREFIX + "showThreadName";
+
+ /**
+ * Set to true if you want the Logger instance name to be included in
output messages. Defaults to true.
+ *
+ * @since 4.0.0
+ */
+ @Config(type = "java.lang.Boolean", defaultValue = "true")
+ public static final String MAVEN_LOGGER_SHOW_LOG_NAME =
MAVEN_LOGGER_PREFIX + "showLogName";
+
+ /**
+ * Set to true if you want the last component of the name to be included
in output messages. Defaults to false.
+ *
+ * @since 4.0.0
+ */
+ @Config(type = "java.lang.Boolean", defaultValue = "false")
+ public static final String MAVEN_LOGGER_SHOW_SHORT_LOG_NAME =
MAVEN_LOGGER_PREFIX + "showShortLogName";
+
+ /**
+ * The output target which can be the path to a file, or the special
values "System.out" and "System.err".
+ * Default is "System.err".
+ *
+ * @since 4.0.0
+ */
+ @Config
+ public static final String MAVEN_LOGGER_LOG_FILE = MAVEN_LOGGER_PREFIX +
"logFile";
+
+ /**
+ * Should the level string be output in brackets? Defaults to false.
+ *
+ * @since 4.0.0
+ */
+ @Config(type = "java.lang.Boolean", defaultValue = "false")
+ public static final String MAVEN_LOGGER_LEVEL_IN_BRACKETS =
MAVEN_LOGGER_PREFIX + "levelInBrackets";
+
+ /**
+ * The string value output for the warn level. Defaults to WARN.
+ *
+ * @since 4.0.0
+ */
+ @Config(defaultValue = "WARN")
+ public static final String MAVEN_LOGGER_WARN_LEVEL = MAVEN_LOGGER_PREFIX +
"warnLevelString";
+
+ /**
+ * If the output target is set to "System.out" or "System.err" (see
preceding entry), by default, logs will
+ * be output to the latest value referenced by System.out/err variables.
By setting this parameter to true,
+ * the output stream will be cached, i.e. assigned once at initialization
time and re-used independently of
+ * the current value referenced by System.out/err.
+ *
+ * @since 4.0.0
+ */
+ @Config(type = "java.lang.Boolean", defaultValue = "false")
+ public static final String MAVEN_LOGGER_CACHE_OUTPUT_STREAM =
MAVEN_LOGGER_PREFIX + "cacheOutputStream";
+
+ /**
+ * maven.logger.log.a.b.c - Logging detail level for a SimpleLogger
instance named "a.b.c". Right-side value
+ * must be one of "trace", "debug", "info", "warn", "error" or "off". When
a logger named "a.b.c" is initialized,
+ * its level is assigned from this property. If unspecified, the level of
nearest parent logger will be used,
+ * and if none is set, then the value specified by {@code
maven.logger.defaultLogLevel} will be used.
+ *
+ * @since 4.0.0
+ */
+ public static final String MAVEN_LOGGER_LOG_PREFIX = MAVEN_LOGGER_PREFIX +
"log.";
+
private Constants() {}
}
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 af17432a13..2c407d6bee 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
@@ -18,9 +18,9 @@
*/
package org.apache.maven.cling.logging.impl;
+import org.apache.maven.api.Constants;
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;
@@ -42,10 +42,10 @@ public void setRootLoggerLevel(Level level) {
default -> "error";
};
- String current =
System.setProperty(MavenSimpleLogger.DEFAULT_LOG_LEVEL_KEY, value);
+ String current =
System.setProperty(Constants.MAVEN_LOGGER_DEFAULT_LOG_LEVEL, value);
if (current != null && !value.equalsIgnoreCase(current)) {
LOGGER.info(
- "System property '" +
MavenSimpleLogger.DEFAULT_LOG_LEVEL_KEY + "' is already set to '" + current
+ "System property '" +
Constants.MAVEN_LOGGER_DEFAULT_LOG_LEVEL + "' is already set to '" + current
+ "' - ignoring system property and get log level
from -X/-e/-q options, log level will be set to"
+ value);
}
diff --git
a/impl/maven-logging/src/main/java/org/apache/maven/slf4j/MavenBaseLogger.java
b/impl/maven-logging/src/main/java/org/apache/maven/slf4j/MavenBaseLogger.java
index cd8d1e19f0..4b8edb6227 100644
---
a/impl/maven-logging/src/main/java/org/apache/maven/slf4j/MavenBaseLogger.java
+++
b/impl/maven-logging/src/main/java/org/apache/maven/slf4j/MavenBaseLogger.java
@@ -25,6 +25,7 @@
import java.util.ArrayList;
import java.util.List;
+import org.apache.maven.api.Constants;
import org.apache.maven.api.MonotonicClock;
import org.slf4j.Logger;
import org.slf4j.Marker;
@@ -43,11 +44,11 @@
*
*
* <ul>
- * <li><code>org.slf4j.simpleLogger.logFile</code> - The output target which
can
+ * <li><code>maven.logger.logFile</code> - The output target which can
* be the <em>path</em> to a file, or the special values "System.out" and
* "System.err". Default is "System.err".</li>
*
- * <li><code>org.slf4j.simpleLogger.cacheOutputStream</code> - If the output
+ * <li><code>maven.logger.cacheOutputStream</code> - If the output
* target is set to "System.out" or "System.err" (see preceding entry), by
* default, logs will be output to the latest value referenced by
* <code>System.out/err</code> variables. By setting this parameter to true,
the
@@ -55,49 +56,49 @@
* re-used independently of the current value referenced by
* <code>System.out/err</code>.</li>
*
- * <li><code>org.slf4j.simpleLogger.defaultLogLevel</code> - Default log level
+ * <li><code>maven.logger.defaultLogLevel</code> - Default log level
* for all instances of SimpleLogger. Must be one of ("trace", "debug", "info",
* "warn", "error" or "off"). If not specified, defaults to "info".</li>
*
- * <li><code>org.slf4j.simpleLogger.log.<em>a.b.c</em></code> - Logging detail
+ * <li><code>maven.logger.log.<em>a.b.c</em></code> - Logging detail
* level for a SimpleLogger instance named "a.b.c". Right-side value must be
one
* of "trace", "debug", "info", "warn", "error" or "off". When a SimpleLogger
* named "a.b.c" is initialized, its level is assigned from this property. If
* unspecified, the level of nearest parent logger will be used, and if none is
* set, then the value specified by
- * <code>org.slf4j.simpleLogger.defaultLogLevel</code> will be used.</li>
+ * <code>maven.logger.defaultLogLevel</code> will be used.</li>
*
- * <li><code>org.slf4j.simpleLogger.showDateTime</code> - Set to
+ * <li><code>maven.logger.showDateTime</code> - Set to
* <code>true</code> if you want the current date and time to be included in
* output messages. Default is <code>false</code></li>
*
- * <li><code>org.slf4j.simpleLogger.dateTimeFormat</code> - The date and time
+ * <li><code>maven.logger.dateTimeFormat</code> - The date and time
* format to be used in the output messages. The pattern describing the date
and
* time format is defined by <a href=
*
"http://docs.oracle.com/javase/1.5.0/docs/api/java/text/SimpleDateFormat.html">
* <code>SimpleDateFormat</code></a>. If the format is not specified or is
* invalid, the number of milliseconds since start up will be output.</li>
*
- * <li><code>org.slf4j.simpleLogger.showThreadName</code> -Set to
+ * <li><code>maven.logger.showThreadName</code> -Set to
* <code>true</code> if you want to output the current thread name. Defaults to
* <code>true</code>.</li>
*
- * <li>(since version 1.7.33 and 2.0.0-alpha6)
<code>org.slf4j.simpleLogger.showThreadId</code> -
+ * <li>(since version 1.7.33 and 2.0.0-alpha6)
<code>maven.logger.showThreadId</code> -
* If you would like to output the current thread id, then set to
* <code>true</code>. Defaults to <code>false</code>.</li>
*
- * <li><code>org.slf4j.simpleLogger.showLogName</code> - Set to
+ * <li><code>maven.logger.showLogName</code> - Set to
* <code>true</code> if you want the Logger instance name to be included in
* output messages. Defaults to <code>true</code>.</li>
*
- * <li><code>org.slf4j.simpleLogger.showShortLogName</code> - Set to
+ * <li><code>maven.logger.showShortLogName</code> - Set to
* <code>true</code> if you want the last component of the name to be included
* in output messages. Defaults to <code>false</code>.</li>
*
- * <li><code>org.slf4j.simpleLogger.levelInBrackets</code> - Should the level
+ * <li><code>maven.logger.levelInBrackets</code> - Should the level
* string be output in brackets? Defaults to <code>false</code>.</li>
*
- * <li><code>org.slf4j.simpleLogger.warnLevelString</code> - The string value
+ * <li><code>maven.logger.warnLevelString</code> - The string value
* output for the warn level. Defaults to <code>WARN</code>.</li>
*
* </ul>
@@ -184,34 +185,9 @@ static void init() {
private transient String shortLogName = null;
/**
- * All system properties used by <code>SimpleLogger</code> start with this
- * prefix
+ * Legacy SLF4J prefix maintained for backwards compatibility
*/
- public static final String SYSTEM_PREFIX = "org.slf4j.simpleLogger.";
-
- public static final String LOG_KEY_PREFIX = MavenBaseLogger.SYSTEM_PREFIX
+ "log.";
-
- public static final String CACHE_OUTPUT_STREAM_STRING_KEY =
MavenBaseLogger.SYSTEM_PREFIX + "cacheOutputStream";
-
- public static final String WARN_LEVEL_STRING_KEY =
MavenBaseLogger.SYSTEM_PREFIX + "warnLevelString";
-
- public static final String LEVEL_IN_BRACKETS_KEY =
MavenBaseLogger.SYSTEM_PREFIX + "levelInBrackets";
-
- public static final String LOG_FILE_KEY = MavenBaseLogger.SYSTEM_PREFIX +
"logFile";
-
- public static final String SHOW_SHORT_LOG_NAME_KEY =
MavenBaseLogger.SYSTEM_PREFIX + "showShortLogName";
-
- public static final String SHOW_LOG_NAME_KEY =
MavenBaseLogger.SYSTEM_PREFIX + "showLogName";
-
- public static final String SHOW_THREAD_NAME_KEY =
MavenBaseLogger.SYSTEM_PREFIX + "showThreadName";
-
- public static final String SHOW_THREAD_ID_KEY =
MavenBaseLogger.SYSTEM_PREFIX + "showThreadId";
-
- public static final String DATE_TIME_FORMAT_KEY =
MavenBaseLogger.SYSTEM_PREFIX + "dateTimeFormat";
-
- public static final String SHOW_DATE_TIME_KEY =
MavenBaseLogger.SYSTEM_PREFIX + "showDateTime";
-
- public static final String DEFAULT_LOG_LEVEL_KEY =
MavenBaseLogger.SYSTEM_PREFIX + "defaultLogLevel";
+ public static final String LEGACY_PREFIX = "org.slf4j.simpleLogger.";
/**
* Protected access allows only {@link MavenLoggerFactory} and also
derived classes to instantiate
@@ -234,8 +210,8 @@ String recursivelyComputeLevelString() {
int indexOfLastDot = tempName.length();
while ((levelString == null) && (indexOfLastDot > -1)) {
tempName = tempName.substring(0, indexOfLastDot);
- levelString =
CONFIG_PARAMS.getStringProperty(MavenBaseLogger.LOG_KEY_PREFIX + tempName,
null);
- indexOfLastDot = String.valueOf(tempName).lastIndexOf(".");
+ levelString =
CONFIG_PARAMS.getStringProperty(Constants.MAVEN_LOGGER_LOG_PREFIX + tempName,
null);
+ indexOfLastDot = tempName.lastIndexOf(".");
}
return levelString;
}
@@ -244,8 +220,8 @@ String recursivelyComputeLevelString() {
* To avoid intermingling of log messages and associated stack traces, the
two
* operations are done in a synchronized block.
*
- * @param buf
- * @param t
+ * @param buf The StringBuilder containing the log message to be written
+ * @param t The Throwable object whose stack trace should be written,
may be null
*/
protected void write(StringBuilder buf, Throwable t) {
PrintStream targetStream =
CONFIG_PARAMS.outputChoice.getTargetPrintStream();
diff --git
a/impl/maven-logging/src/main/java/org/apache/maven/slf4j/SimpleLoggerConfiguration.java
b/impl/maven-logging/src/main/java/org/apache/maven/slf4j/SimpleLoggerConfiguration.java
index 0ea1a33498..18a2627166 100644
---
a/impl/maven-logging/src/main/java/org/apache/maven/slf4j/SimpleLoggerConfiguration.java
+++
b/impl/maven-logging/src/main/java/org/apache/maven/slf4j/SimpleLoggerConfiguration.java
@@ -25,6 +25,7 @@
import java.time.format.DateTimeFormatter;
import java.util.Properties;
+import org.apache.maven.api.Constants;
import org.apache.maven.slf4j.OutputChoice.OutputChoiceType;
import org.slf4j.helpers.Reporter;
@@ -44,7 +45,10 @@
*/
public class SimpleLoggerConfiguration {
- private static final String CONFIGURATION_FILE = "simplelogger.properties";
+ private static final String CONFIGURATION_FILE = "maven.logger.properties";
+
+ @Deprecated(since = "4.0.0")
+ private static final String LEGACY_CONFIGURATION_FILE =
"simplelogger.properties";
static final int DEFAULT_LOG_LEVEL_DEFAULT =
MavenBaseLogger.LOG_LEVEL_INFO;
int defaultLogLevel = DEFAULT_LOG_LEVEL_DEFAULT;
@@ -93,7 +97,7 @@ void init() {
loadProperties();
- String defaultLogLevelString =
getStringProperty(MavenBaseLogger.DEFAULT_LOG_LEVEL_KEY, null);
+ String defaultLogLevelString =
getStringProperty(Constants.MAVEN_LOGGER_DEFAULT_LOG_LEVEL, null);
if (defaultLogLevelString != null) {
defaultLogLevel = stringToLevel(defaultLogLevelString);
}
@@ -101,20 +105,18 @@ void init() {
// local variable,
String dateTimeFormatStr;
- showLogName =
- getBooleanProperty(MavenBaseLogger.SHOW_LOG_NAME_KEY,
SimpleLoggerConfiguration.SHOW_LOG_NAME_DEFAULT);
- showShortLogName =
getBooleanProperty(MavenBaseLogger.SHOW_SHORT_LOG_NAME_KEY,
SHOW_SHORT_LOG_NAME_DEFAULT);
- showDateTime = getBooleanProperty(MavenBaseLogger.SHOW_DATE_TIME_KEY,
SHOW_DATE_TIME_DEFAULT);
- showThreadName =
getBooleanProperty(MavenBaseLogger.SHOW_THREAD_NAME_KEY,
SHOW_THREAD_NAME_DEFAULT);
- showThreadId = getBooleanProperty(MavenBaseLogger.SHOW_THREAD_ID_KEY,
SHOW_THREAD_ID_DEFAULT);
- dateTimeFormatStr =
getStringProperty(MavenBaseLogger.DATE_TIME_FORMAT_KEY,
DATE_TIME_FORMAT_STR_DEFAULT);
- levelInBrackets =
getBooleanProperty(MavenBaseLogger.LEVEL_IN_BRACKETS_KEY,
LEVEL_IN_BRACKETS_DEFAULT);
- warnLevelString =
getStringProperty(MavenBaseLogger.WARN_LEVEL_STRING_KEY,
WARN_LEVELS_STRING_DEFAULT);
+ showLogName = getBooleanProperty(Constants.MAVEN_LOGGER_SHOW_LOG_NAME,
SHOW_LOG_NAME_DEFAULT);
+ showShortLogName =
getBooleanProperty(Constants.MAVEN_LOGGER_SHOW_SHORT_LOG_NAME,
SHOW_SHORT_LOG_NAME_DEFAULT);
+ showDateTime =
getBooleanProperty(Constants.MAVEN_LOGGER_SHOW_DATE_TIME,
SHOW_DATE_TIME_DEFAULT);
+ showThreadName =
getBooleanProperty(Constants.MAVEN_LOGGER_SHOW_THREAD_NAME,
SHOW_THREAD_NAME_DEFAULT);
+ showThreadId =
getBooleanProperty(Constants.MAVEN_LOGGER_SHOW_THREAD_ID,
SHOW_THREAD_ID_DEFAULT);
+ dateTimeFormatStr =
getStringProperty(Constants.MAVEN_LOGGER_DATE_TIME_FORMAT,
DATE_TIME_FORMAT_STR_DEFAULT);
+ levelInBrackets =
getBooleanProperty(Constants.MAVEN_LOGGER_LEVEL_IN_BRACKETS,
LEVEL_IN_BRACKETS_DEFAULT);
+ warnLevelString = getStringProperty(Constants.MAVEN_LOGGER_WARN_LEVEL,
WARN_LEVELS_STRING_DEFAULT);
- logFile = getStringProperty(MavenBaseLogger.LOG_FILE_KEY, logFile);
+ logFile = getStringProperty(Constants.MAVEN_LOGGER_LOG_FILE, logFile);
- cacheOutputStream =
-
getBooleanProperty(MavenBaseLogger.CACHE_OUTPUT_STREAM_STRING_KEY,
CACHE_OUTPUT_STREAM_DEFAULT);
+ cacheOutputStream =
getBooleanProperty(Constants.MAVEN_LOGGER_CACHE_OUTPUT_STREAM,
CACHE_OUTPUT_STREAM_DEFAULT);
outputChoice = computeOutputChoice(logFile, cacheOutputStream);
if (dateTimeFormatStr != null) {
@@ -127,12 +129,36 @@ void init() {
}
private void loadProperties() {
- // Add props from the resource simplelogger.properties
ClassLoader threadCL = Thread.currentThread().getContextClassLoader();
ClassLoader toUseCL = (threadCL != null ? threadCL :
ClassLoader.getSystemClassLoader());
+
+ // Try loading maven properties first
+ boolean mavenPropsLoaded = false;
try (InputStream in = toUseCL.getResourceAsStream(CONFIGURATION_FILE))
{
if (in != null) {
properties.load(in);
+ mavenPropsLoaded = true;
+ }
+ } catch (java.io.IOException e) {
+ // ignored
+ }
+
+ // Try loading legacy properties
+ try (InputStream in =
toUseCL.getResourceAsStream(LEGACY_CONFIGURATION_FILE)) {
+ if (in != null) {
+ Properties legacyProps = new Properties();
+ legacyProps.load(in);
+ if (!mavenPropsLoaded) {
+ Reporter.warn("Using deprecated " +
LEGACY_CONFIGURATION_FILE + ". Please migrate to "
+ + CONFIGURATION_FILE);
+ }
+ // Only load legacy properties if there's no maven equivalent
+ for (String propName : legacyProps.stringPropertyNames()) {
+ String mavenKey =
propName.replace(MavenBaseLogger.LEGACY_PREFIX, Constants.MAVEN_LOGGER_PREFIX);
+ if (!properties.containsKey(mavenKey)) {
+ properties.setProperty(mavenKey,
legacyProps.getProperty(propName));
+ }
+ }
}
} catch (java.io.IOException e) {
// ignored
@@ -152,11 +178,32 @@ boolean getBooleanProperty(String name, boolean
defaultValue) {
String getStringProperty(String name) {
String prop = null;
try {
+ // Try maven property first
prop = System.getProperty(name);
+ if (prop == null &&
name.startsWith(Constants.MAVEN_LOGGER_PREFIX)) {
+ // Try legacy property
+ String legacyName =
name.replace(Constants.MAVEN_LOGGER_PREFIX, MavenBaseLogger.LEGACY_PREFIX);
+ prop = System.getProperty(legacyName);
+ if (prop != null) {
+ Reporter.warn("Using deprecated property " + legacyName +
". Please migrate to " + name);
+ }
+ }
} catch (SecurityException e) {
// Ignore
}
- return (prop == null) ? properties.getProperty(name) : prop;
+
+ if (prop == null) {
+ prop = properties.getProperty(name);
+ if (prop == null &&
name.startsWith(Constants.MAVEN_LOGGER_PREFIX)) {
+ // Try legacy property from properties file
+ String legacyName =
name.replace(Constants.MAVEN_LOGGER_PREFIX, MavenBaseLogger.LEGACY_PREFIX);
+ prop = properties.getProperty(legacyName);
+ if (prop != null) {
+ Reporter.warn("Using deprecated property " + legacyName +
". Please migrate to " + name);
+ }
+ }
+ }
+ return prop;
}
static int stringToLevel(String levelStr) {
diff --git
a/impl/maven-logging/src/test/java/org/apache/maven/slf4j/MavenBaseLoggerTimestampTest.java
b/impl/maven-logging/src/test/java/org/apache/maven/slf4j/MavenBaseLoggerTimestampTest.java
index b79eb19984..18a43d74c5 100644
---
a/impl/maven-logging/src/test/java/org/apache/maven/slf4j/MavenBaseLoggerTimestampTest.java
+++
b/impl/maven-logging/src/test/java/org/apache/maven/slf4j/MavenBaseLoggerTimestampTest.java
@@ -21,6 +21,7 @@
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
+import org.apache.maven.api.Constants;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -39,8 +40,8 @@ class MavenBaseLoggerTimestampTest {
@BeforeEach
void setUp() {
// Reset configuration before each test
- System.clearProperty(MavenBaseLogger.SHOW_DATE_TIME_KEY);
- System.clearProperty(MavenBaseLogger.DATE_TIME_FORMAT_KEY);
+ System.clearProperty(Constants.MAVEN_LOGGER_SHOW_DATE_TIME);
+ System.clearProperty(Constants.MAVEN_LOGGER_DATE_TIME_FORMAT);
// Reset static initialization flag
MavenBaseLogger.initialized = false;
@@ -54,15 +55,15 @@ void setUp() {
@AfterEach
void tearDown() {
System.setErr(originalErr);
- System.clearProperty(MavenBaseLogger.SHOW_DATE_TIME_KEY);
- System.clearProperty(MavenBaseLogger.DATE_TIME_FORMAT_KEY);
+ System.clearProperty(Constants.MAVEN_LOGGER_SHOW_DATE_TIME);
+ System.clearProperty(Constants.MAVEN_LOGGER_DATE_TIME_FORMAT);
MavenBaseLogger.initialized = false;
}
@Test
void whenShowDateTimeIsFalse_shouldNotIncludeTimestamp() {
// Given
- System.setProperty(MavenBaseLogger.SHOW_DATE_TIME_KEY, "false");
+ System.setProperty(Constants.MAVEN_LOGGER_SHOW_DATE_TIME, "false");
initializeLogger();
// When
@@ -77,7 +78,7 @@ void whenShowDateTimeIsFalse_shouldNotIncludeTimestamp() {
@Test
void whenShowDateTimeIsTrue_withoutFormat_shouldShowElapsedTime() { //
Changed test name and expectation
// Given
- System.setProperty(MavenBaseLogger.SHOW_DATE_TIME_KEY, "true");
+ System.setProperty(Constants.MAVEN_LOGGER_SHOW_DATE_TIME, "true");
initializeLogger();
// When
@@ -95,8 +96,8 @@ void
whenShowDateTimeIsTrue_withoutFormat_shouldShowElapsedTime() { // Changed t
@ValueSource(strings = {"yyyy-MM-dd HH:mm:ss", "dd/MM/yyyy HH:mm:ss.SSS",
"HH:mm:ss"})
void whenCustomDateFormat_shouldFormatCorrectly(String dateFormat) {
// Given
- System.setProperty(MavenBaseLogger.SHOW_DATE_TIME_KEY, "true");
- System.setProperty(MavenBaseLogger.DATE_TIME_FORMAT_KEY, dateFormat);
+ System.setProperty(Constants.MAVEN_LOGGER_SHOW_DATE_TIME, "true");
+ System.setProperty(Constants.MAVEN_LOGGER_DATE_TIME_FORMAT,
dateFormat);
initializeLogger();
// When
@@ -124,8 +125,8 @@ void whenCustomDateFormat_shouldFormatCorrectly(String
dateFormat) {
@Test
void whenInvalidDateFormat_shouldUseElapsedMillis() {
// Given
- System.setProperty(MavenBaseLogger.SHOW_DATE_TIME_KEY, "true");
- System.setProperty(MavenBaseLogger.DATE_TIME_FORMAT_KEY,
"invalid-format");
+ System.setProperty(Constants.MAVEN_LOGGER_SHOW_DATE_TIME, "true");
+ System.setProperty(Constants.MAVEN_LOGGER_DATE_TIME_FORMAT,
"invalid-format");
initializeLogger();
// When
diff --git a/src/site/markdown/configuration.properties
b/src/site/markdown/configuration.properties
index cd51535b2f..0031cac310 100644
--- a/src/site/markdown/configuration.properties
+++ b/src/site/markdown/configuration.properties
@@ -16,7 +16,7 @@
# specific language governing permissions and limitations
# under the License.
#
-props.count = 45
+props.count = 56
props.1.key = maven.build.timestamp.format
props.1.configurationType = String
props.1.description = Build timestamp format.
@@ -76,212 +76,278 @@ props.10.description = Maven installation toolchains.
props.10.defaultValue = ${maven.installation.conf}/toolchains.xml
props.10.since = 4.0.0
props.10.configurationSource = User properties
-props.11.key = maven.modelBuilder.parallelism
-props.11.configurationType = Integer
-props.11.description = ProjectBuilder parallelism.
-props.11.defaultValue = cores/2 + 1
+props.11.key = maven.logger.cacheOutputStream
+props.11.configurationType = Boolean
+props.11.description = If the output target is set to "System.out" or
"System.err" (see preceding entry), by default, logs will be output to the
latest value referenced by System.out/err variables. By setting this parameter
to true, the output stream will be cached, i.e. assigned once at initialization
time and re-used independently of the current value referenced by
System.out/err.
+props.11.defaultValue = false
props.11.since = 4.0.0
props.11.configurationSource = User properties
-props.12.key = maven.plugin.validation
+props.12.key = maven.logger.dateTimeFormat
props.12.configurationType = String
-props.12.description = Plugin validation level.
-props.12.defaultValue = inline
-props.12.since = 3.9.2
+props.12.description = The date and time format to be used in the output
messages. The pattern describing the date and time format is defined by
SimpleDateFormat. If the format is not specified or is invalid, the number of
milliseconds since start up will be output.
+props.12.defaultValue =
+props.12.since = 4.0.0
props.12.configurationSource = User properties
-props.13.key = maven.plugin.validation.excludes
+props.13.key = maven.logger.defaultLogLevel
props.13.configurationType = String
-props.13.description = Plugin validation exclusions.
+props.13.description = Default log level for all instances of SimpleLogger.
Must be one of ("trace", "debug", "info", "warn", "error" or "off"). If not
specified, defaults to "info".
props.13.defaultValue =
-props.13.since = 3.9.6
+props.13.since = 4.0.0
props.13.configurationSource = User properties
-props.14.key = maven.project.conf
-props.14.configurationType = String
-props.14.description = Maven project configuration directory.
-props.14.defaultValue = ${session.rootDirectory}/.mvn
+props.14.key = maven.logger.levelInBrackets
+props.14.configurationType = Boolean
+props.14.description = Should the level string be output in brackets? Defaults
to false.
+props.14.defaultValue = false
props.14.since = 4.0.0
props.14.configurationSource = User properties
-props.15.key = maven.project.extensions
+props.15.key = maven.logger.logFile
props.15.configurationType = String
-props.15.description = Maven project extensions.
-props.15.defaultValue = ${maven.project.conf}/extensions.xml
+props.15.description = The output target which can be the path to a file, or
the special values "System.out" and "System.err". Default is "System.err".
+props.15.defaultValue =
props.15.since = 4.0.0
props.15.configurationSource = User properties
-props.16.key = maven.project.settings
-props.16.configurationType = String
-props.16.description = Maven project settings.
-props.16.defaultValue = ${maven.project.conf}/settings.xml
+props.16.key = maven.logger.showDateTime
+props.16.configurationType = Boolean
+props.16.description = Set to true if you want the current date and time to be
included in output messages. Default is false.
+props.16.defaultValue = false
props.16.since = 4.0.0
props.16.configurationSource = User properties
-props.17.key = maven.relocations.entries
-props.17.configurationType = String
-props.17.description = User controlled relocations. This property is a comma
separated list of entries with the syntax <code>GAV>GAV</code>. The first
<code>GAV</code> can contain <code>\*</code> for any elem (so
<code>\*:\*:\*</code> would mean ALL, something you don't want). The second
<code>GAV</code> is either fully specified, or also can contain
<code>\*</code>, then it behaves as "ordinary relocation": the coordinate is
preserved from relocated artifact. Finally, if right hand < [...]
-props.17.defaultValue =
+props.17.key = maven.logger.showLogName
+props.17.configurationType = Boolean
+props.17.description = Set to true if you want the Logger instance name to be
included in output messages. Defaults to true.
+props.17.defaultValue = true
props.17.since = 4.0.0
props.17.configurationSource = User properties
-props.18.key = maven.repo.central
-props.18.configurationType = String
-props.18.description = Maven central repository URL. The property will have
the value of the <code>MAVEN_REPO_CENTRAL</code> environment variable if it is
defined.
-props.18.defaultValue = https://repo.maven.apache.org/maven2
+props.18.key = maven.logger.showShortLogName
+props.18.configurationType = Boolean
+props.18.description = Set to true if you want the last component of the name
to be included in output messages. Defaults to false.
+props.18.defaultValue = false
props.18.since = 4.0.0
props.18.configurationSource = User properties
-props.19.key = maven.repo.local
-props.19.configurationType = String
-props.19.description = Maven local repository.
-props.19.defaultValue = ${maven.user.conf}/repository
-props.19.since = 3.0.0
+props.19.key = maven.logger.showThreadId
+props.19.configurationType = Boolean
+props.19.description = If you would like to output the current thread id, then
set to true. Defaults to false.
+props.19.defaultValue = false
+props.19.since = 4.0.0
props.19.configurationSource = User properties
-props.20.key = maven.repo.local.head
-props.20.configurationType = String
-props.20.description = User property for chained LRM: the new "head" local
repository to use, and "push" the existing into tail. Similar to
<code>maven.repo.local.tail</code>, this property may contain comma separated
list of paths to be used as local repositories (combine with chained local
repository), but while latter is "appending" this one is "prepending".
-props.20.defaultValue =
+props.20.key = maven.logger.showThreadName
+props.20.configurationType = Boolean
+props.20.description = Set to true if you want to output the current thread
name. Defaults to true.
+props.20.defaultValue = true
props.20.since = 4.0.0
props.20.configurationSource = User properties
-props.21.key = maven.repo.local.recordReverseTree
+props.21.key = maven.logger.warnLevelString
props.21.configurationType = String
-props.21.description = User property for reverse dependency tree. If enabled,
Maven will record ".tracking" directory into local repository with "reverse
dependency tree", essentially explaining WHY given artifact is present in local
repository. Default: <code>false</code>, will not record anything.
-props.21.defaultValue = false
-props.21.since = 3.9.0
+props.21.description = The string value output for the warn level. Defaults to
WARN.
+props.21.defaultValue = WARN
+props.21.since = 4.0.0
props.21.configurationSource = User properties
-props.22.key = maven.repo.local.tail
-props.22.configurationType = String
-props.22.description = User property for chained LRM: list of "tail" local
repository paths (separated by comma), to be used with
<code>org.eclipse.aether.util.repository.ChainedLocalRepositoryManager</code>.
Default value: <code>null</code>, no chained LRM is used.
-props.22.defaultValue =
-props.22.since = 3.9.0
+props.22.key = maven.modelBuilder.parallelism
+props.22.configurationType = Integer
+props.22.description = ProjectBuilder parallelism.
+props.22.defaultValue = cores/2 + 1
+props.22.since = 4.0.0
props.22.configurationSource = User properties
-props.23.key = maven.repo.local.tail.ignoreAvailability
+props.23.key = maven.plugin.validation
props.23.configurationType = String
-props.23.description = User property for chained LRM: whether to ignore
"availability check" in tail or not. Usually you do want to ignore it. This
property is mapped onto corresponding Resolver 2.x property, is like a synonym
for it. Default value: <code>true</code>.
-props.23.defaultValue =
-props.23.since = 3.9.0
+props.23.description = Plugin validation level.
+props.23.defaultValue = inline
+props.23.since = 3.9.2
props.23.configurationSource = User properties
-props.24.key = maven.resolver.dependencyManagerTransitivity
+props.24.key = maven.plugin.validation.excludes
props.24.configurationType = String
-props.24.description = User property for selecting dependency manager
behaviour regarding transitive dependencies and dependency management entries
in their POMs. Maven 3 targeted full backward compatibility with Maven2, hence
it ignored dependency management entries in transitive dependency POMs. Maven 4
enables "transitivity" by default, hence unlike Maven2, obeys dependency
management entries deep in dependency graph as well. <br/> Default:
<code>"true"</code>.
-props.24.defaultValue = true
-props.24.since = 4.0.0
+props.24.description = Plugin validation exclusions.
+props.24.defaultValue =
+props.24.since = 3.9.6
props.24.configurationSource = User properties
-props.25.key = maven.resolver.transport
+props.25.key = maven.project.conf
props.25.configurationType = String
-props.25.description = Resolver transport to use. Can be <code>default</code>,
<code>wagon</code>, <code>apache</code>, <code>jdk</code> or <code>auto</code>.
-props.25.defaultValue = default
+props.25.description = Maven project configuration directory.
+props.25.defaultValue = ${session.rootDirectory}/.mvn
props.25.since = 4.0.0
props.25.configurationSource = User properties
-props.26.key = maven.session.versionFilter
+props.26.key = maven.project.extensions
props.26.configurationType = String
-props.26.description = User property for version filter expression used in
session, applied to resolving ranges: a semicolon separated list of filters to
apply. By default, no version filter is applied (like in Maven 3). <br/>
Supported filters: <ul> <li>"h" or "h(num)" - highest version or top list of
highest ones filter</li> <li>"l" or "l(num)" - lowest version or bottom list of
lowest ones filter</li> <li>"s" - contextual snapshot filter</li>
<li>"e(G:A:V)" - predicate filter (leaves [...]
-props.26.defaultValue =
+props.26.description = Maven project extensions.
+props.26.defaultValue = ${maven.project.conf}/extensions.xml
props.26.since = 4.0.0
props.26.configurationSource = User properties
-props.27.key = maven.settings.security
+props.27.key = maven.project.settings
props.27.configurationType = String
-props.27.description =
-props.27.defaultValue = ${maven.user.conf}/settings-security4.xml
+props.27.description = Maven project settings.
+props.27.defaultValue = ${maven.project.conf}/settings.xml
+props.27.since = 4.0.0
props.27.configurationSource = User properties
-props.28.key = maven.startInstant
-props.28.configurationType = java.time.Instant
-props.28.description = User property used to store the build timestamp.
+props.28.key = maven.relocations.entries
+props.28.configurationType = String
+props.28.description = User controlled relocations. This property is a comma
separated list of entries with the syntax <code>GAV>GAV</code>. The first
<code>GAV</code> can contain <code>\*</code> for any elem (so
<code>\*:\*:\*</code> would mean ALL, something you don't want). The second
<code>GAV</code> is either fully specified, or also can contain
<code>\*</code>, then it behaves as "ordinary relocation": the coordinate is
preserved from relocated artifact. Finally, if right hand < [...]
props.28.defaultValue =
props.28.since = 4.0.0
props.28.configurationSource = User properties
-props.29.key = maven.style.color
+props.29.key = maven.repo.central
props.29.configurationType = String
-props.29.description = Maven output color mode. Allowed values are
<code>auto</code>, <code>always</code>, <code>never</code>.
-props.29.defaultValue = auto
+props.29.description = Maven central repository URL. The property will have
the value of the <code>MAVEN_REPO_CENTRAL</code> environment variable if it is
defined.
+props.29.defaultValue = https://repo.maven.apache.org/maven2
props.29.since = 4.0.0
props.29.configurationSource = User properties
-props.30.key = maven.style.debug
+props.30.key = maven.repo.local
props.30.configurationType = String
-props.30.description = Color style for debug messages.
-props.30.defaultValue = bold,f:cyan
-props.30.since = 4.0.0
+props.30.description = Maven local repository.
+props.30.defaultValue = ${maven.user.conf}/repository
+props.30.since = 3.0.0
props.30.configurationSource = User properties
-props.31.key = maven.style.error
+props.31.key = maven.repo.local.head
props.31.configurationType = String
-props.31.description = Color style for error messages.
-props.31.defaultValue = bold,f:red
+props.31.description = User property for chained LRM: the new "head" local
repository to use, and "push" the existing into tail. Similar to
<code>maven.repo.local.tail</code>, this property may contain comma separated
list of paths to be used as local repositories (combine with chained local
repository), but while latter is "appending" this one is "prepending".
+props.31.defaultValue =
props.31.since = 4.0.0
props.31.configurationSource = User properties
-props.32.key = maven.style.failure
+props.32.key = maven.repo.local.recordReverseTree
props.32.configurationType = String
-props.32.description = Color style for failure messages.
-props.32.defaultValue = bold,f:red
-props.32.since = 4.0.0
+props.32.description = User property for reverse dependency tree. If enabled,
Maven will record ".tracking" directory into local repository with "reverse
dependency tree", essentially explaining WHY given artifact is present in local
repository. Default: <code>false</code>, will not record anything.
+props.32.defaultValue = false
+props.32.since = 3.9.0
props.32.configurationSource = User properties
-props.33.key = maven.style.info
+props.33.key = maven.repo.local.tail
props.33.configurationType = String
-props.33.description = Color style for info messages.
-props.33.defaultValue = bold,f:blue
-props.33.since = 4.0.0
+props.33.description = User property for chained LRM: list of "tail" local
repository paths (separated by comma), to be used with
<code>org.eclipse.aether.util.repository.ChainedLocalRepositoryManager</code>.
Default value: <code>null</code>, no chained LRM is used.
+props.33.defaultValue =
+props.33.since = 3.9.0
props.33.configurationSource = User properties
-props.34.key = maven.style.mojo
+props.34.key = maven.repo.local.tail.ignoreAvailability
props.34.configurationType = String
-props.34.description = Color style for mojo messages.
-props.34.defaultValue = f:green
-props.34.since = 4.0.0
+props.34.description = User property for chained LRM: whether to ignore
"availability check" in tail or not. Usually you do want to ignore it. This
property is mapped onto corresponding Resolver 2.x property, is like a synonym
for it. Default value: <code>true</code>.
+props.34.defaultValue =
+props.34.since = 3.9.0
props.34.configurationSource = User properties
-props.35.key = maven.style.project
+props.35.key = maven.resolver.dependencyManagerTransitivity
props.35.configurationType = String
-props.35.description = Color style for project messages.
-props.35.defaultValue = f:cyan
+props.35.description = User property for selecting dependency manager
behaviour regarding transitive dependencies and dependency management entries
in their POMs. Maven 3 targeted full backward compatibility with Maven2, hence
it ignored dependency management entries in transitive dependency POMs. Maven 4
enables "transitivity" by default, hence unlike Maven2, obeys dependency
management entries deep in dependency graph as well. <br/> Default:
<code>"true"</code>.
+props.35.defaultValue = true
props.35.since = 4.0.0
props.35.configurationSource = User properties
-props.36.key = maven.style.strong
+props.36.key = maven.resolver.transport
props.36.configurationType = String
-props.36.description = Color style for strong messages.
-props.36.defaultValue = bold
+props.36.description = Resolver transport to use. Can be <code>default</code>,
<code>wagon</code>, <code>apache</code>, <code>jdk</code> or <code>auto</code>.
+props.36.defaultValue = default
props.36.since = 4.0.0
props.36.configurationSource = User properties
-props.37.key = maven.style.success
+props.37.key = maven.session.versionFilter
props.37.configurationType = String
-props.37.description = Color style for success messages.
-props.37.defaultValue = bold,f:green
+props.37.description = User property for version filter expression used in
session, applied to resolving ranges: a semicolon separated list of filters to
apply. By default, no version filter is applied (like in Maven 3). <br/>
Supported filters: <ul> <li>"h" or "h(num)" - highest version or top list of
highest ones filter</li> <li>"l" or "l(num)" - lowest version or bottom list of
lowest ones filter</li> <li>"s" - contextual snapshot filter</li>
<li>"e(G:A:V)" - predicate filter (leaves [...]
+props.37.defaultValue =
props.37.since = 4.0.0
props.37.configurationSource = User properties
-props.38.key = maven.style.trace
+props.38.key = maven.settings.security
props.38.configurationType = String
-props.38.description = Color style for trace messages.
-props.38.defaultValue = bold,f:magenta
-props.38.since = 4.0.0
+props.38.description =
+props.38.defaultValue = ${maven.user.conf}/settings-security4.xml
props.38.configurationSource = User properties
-props.39.key = maven.style.transfer
-props.39.configurationType = String
-props.39.description = Color style for transfer messages.
-props.39.defaultValue = f:bright-black
+props.39.key = maven.startInstant
+props.39.configurationType = java.time.Instant
+props.39.description = User property used to store the build timestamp.
+props.39.defaultValue =
props.39.since = 4.0.0
props.39.configurationSource = User properties
-props.40.key = maven.style.warning
+props.40.key = maven.style.color
props.40.configurationType = String
-props.40.description = Color style for warning messages.
-props.40.defaultValue = bold,f:yellow
+props.40.description = Maven output color mode. Allowed values are
<code>auto</code>, <code>always</code>, <code>never</code>.
+props.40.defaultValue = auto
props.40.since = 4.0.0
props.40.configurationSource = User properties
-props.41.key = maven.user.conf
+props.41.key = maven.style.debug
props.41.configurationType = String
-props.41.description = Maven user configuration directory.
-props.41.defaultValue = ${user.home}/.m2
+props.41.description = Color style for debug messages.
+props.41.defaultValue = bold,f:cyan
props.41.since = 4.0.0
props.41.configurationSource = User properties
-props.42.key = maven.user.extensions
+props.42.key = maven.style.error
props.42.configurationType = String
-props.42.description = Maven user extensions.
-props.42.defaultValue = ${maven.user.conf}/extensions.xml
+props.42.description = Color style for error messages.
+props.42.defaultValue = bold,f:red
props.42.since = 4.0.0
props.42.configurationSource = User properties
-props.43.key = maven.user.settings
+props.43.key = maven.style.failure
props.43.configurationType = String
-props.43.description = Maven user settings.
-props.43.defaultValue = ${maven.user.conf}/settings.xml
+props.43.description = Color style for failure messages.
+props.43.defaultValue = bold,f:red
props.43.since = 4.0.0
props.43.configurationSource = User properties
-props.44.key = maven.user.toolchains
+props.44.key = maven.style.info
props.44.configurationType = String
-props.44.description = Maven user toolchains.
-props.44.defaultValue = ${maven.user.conf}/toolchains.xml
+props.44.description = Color style for info messages.
+props.44.defaultValue = bold,f:blue
props.44.since = 4.0.0
props.44.configurationSource = User properties
-props.45.key = maven.versionResolver.noCache
-props.45.configurationType = Boolean
-props.45.description = User property for disabling version resolver cache.
-props.45.defaultValue = false
-props.45.since = 3.0.0
+props.45.key = maven.style.mojo
+props.45.configurationType = String
+props.45.description = Color style for mojo messages.
+props.45.defaultValue = f:green
+props.45.since = 4.0.0
props.45.configurationSource = User properties
+props.46.key = maven.style.project
+props.46.configurationType = String
+props.46.description = Color style for project messages.
+props.46.defaultValue = f:cyan
+props.46.since = 4.0.0
+props.46.configurationSource = User properties
+props.47.key = maven.style.strong
+props.47.configurationType = String
+props.47.description = Color style for strong messages.
+props.47.defaultValue = bold
+props.47.since = 4.0.0
+props.47.configurationSource = User properties
+props.48.key = maven.style.success
+props.48.configurationType = String
+props.48.description = Color style for success messages.
+props.48.defaultValue = bold,f:green
+props.48.since = 4.0.0
+props.48.configurationSource = User properties
+props.49.key = maven.style.trace
+props.49.configurationType = String
+props.49.description = Color style for trace messages.
+props.49.defaultValue = bold,f:magenta
+props.49.since = 4.0.0
+props.49.configurationSource = User properties
+props.50.key = maven.style.transfer
+props.50.configurationType = String
+props.50.description = Color style for transfer messages.
+props.50.defaultValue = f:bright-black
+props.50.since = 4.0.0
+props.50.configurationSource = User properties
+props.51.key = maven.style.warning
+props.51.configurationType = String
+props.51.description = Color style for warning messages.
+props.51.defaultValue = bold,f:yellow
+props.51.since = 4.0.0
+props.51.configurationSource = User properties
+props.52.key = maven.user.conf
+props.52.configurationType = String
+props.52.description = Maven user configuration directory.
+props.52.defaultValue = ${user.home}/.m2
+props.52.since = 4.0.0
+props.52.configurationSource = User properties
+props.53.key = maven.user.extensions
+props.53.configurationType = String
+props.53.description = Maven user extensions.
+props.53.defaultValue = ${maven.user.conf}/extensions.xml
+props.53.since = 4.0.0
+props.53.configurationSource = User properties
+props.54.key = maven.user.settings
+props.54.configurationType = String
+props.54.description = Maven user settings.
+props.54.defaultValue = ${maven.user.conf}/settings.xml
+props.54.since = 4.0.0
+props.54.configurationSource = User properties
+props.55.key = maven.user.toolchains
+props.55.configurationType = String
+props.55.description = Maven user toolchains.
+props.55.defaultValue = ${maven.user.conf}/toolchains.xml
+props.55.since = 4.0.0
+props.55.configurationSource = User properties
+props.56.key = maven.versionResolver.noCache
+props.56.configurationType = Boolean
+props.56.description = User property for disabling version resolver cache.
+props.56.defaultValue = false
+props.56.since = 3.0.0
+props.56.configurationSource = User properties
diff --git a/src/site/markdown/configuration.yaml
b/src/site/markdown/configuration.yaml
index 4c95171e7a..5071b37498 100644
--- a/src/site/markdown/configuration.yaml
+++ b/src/site/markdown/configuration.yaml
@@ -76,6 +76,72 @@ props:
defaultValue: ${maven.installation.conf}/toolchains.xml
since: 4.0.0
configurationSource: User properties
+ - key: maven.logger.cacheOutputStream
+ configurationType: Boolean
+ description: "If the output target is set to \"System.out\" or
\"System.err\" (see preceding entry), by default, logs will be output to the
latest value referenced by System.out/err variables. By setting this parameter
to true, the output stream will be cached, i.e. assigned once at initialization
time and re-used independently of the current value referenced by
System.out/err."
+ defaultValue: false
+ since: 4.0.0
+ configurationSource: User properties
+ - key: maven.logger.dateTimeFormat
+ configurationType: String
+ description: "The date and time format to be used in the output
messages. The pattern describing the date and time format is defined by
SimpleDateFormat. If the format is not specified or is invalid, the number of
milliseconds since start up will be output."
+ defaultValue:
+ since: 4.0.0
+ configurationSource: User properties
+ - key: maven.logger.defaultLogLevel
+ configurationType: String
+ description: "Default log level for all instances of SimpleLogger. Must
be one of (\"trace\", \"debug\", \"info\", \"warn\", \"error\" or \"off\"). If
not specified, defaults to \"info\"."
+ defaultValue:
+ since: 4.0.0
+ configurationSource: User properties
+ - key: maven.logger.levelInBrackets
+ configurationType: Boolean
+ description: "Should the level string be output in brackets? Defaults to
false."
+ defaultValue: false
+ since: 4.0.0
+ configurationSource: User properties
+ - key: maven.logger.logFile
+ configurationType: String
+ description: "The output target which can be the path to a file, or the
special values \"System.out\" and \"System.err\". Default is \"System.err\"."
+ defaultValue:
+ since: 4.0.0
+ configurationSource: User properties
+ - key: maven.logger.showDateTime
+ configurationType: Boolean
+ description: "Set to true if you want the current date and time to be
included in output messages. Default is false."
+ defaultValue: false
+ since: 4.0.0
+ configurationSource: User properties
+ - key: maven.logger.showLogName
+ configurationType: Boolean
+ description: "Set to true if you want the Logger instance name to be
included in output messages. Defaults to true."
+ defaultValue: true
+ since: 4.0.0
+ configurationSource: User properties
+ - key: maven.logger.showShortLogName
+ configurationType: Boolean
+ description: "Set to true if you want the last component of the name to
be included in output messages. Defaults to false."
+ defaultValue: false
+ since: 4.0.0
+ configurationSource: User properties
+ - key: maven.logger.showThreadId
+ configurationType: Boolean
+ description: "If you would like to output the current thread id, then
set to true. Defaults to false."
+ defaultValue: false
+ since: 4.0.0
+ configurationSource: User properties
+ - key: maven.logger.showThreadName
+ configurationType: Boolean
+ description: "Set to true if you want to output the current thread name.
Defaults to true."
+ defaultValue: true
+ since: 4.0.0
+ configurationSource: User properties
+ - key: maven.logger.warnLevelString
+ configurationType: String
+ description: "The string value output for the warn level. Defaults to
WARN."
+ defaultValue: WARN
+ since: 4.0.0
+ configurationSource: User properties
- key: maven.modelBuilder.parallelism
configurationType: Integer
description: "ProjectBuilder parallelism."
diff --git a/src/site/markdown/maven-configuration.md
b/src/site/markdown/maven-configuration.md
index aa7a04b76f..b886334642 100644
--- a/src/site/markdown/maven-configuration.md
+++ b/src/site/markdown/maven-configuration.md
@@ -35,6 +35,17 @@ under the License.
| `maven.installation.extensions` | `String` | Maven installation extensions.
| `${maven.installation.conf}/extensions.xml` | 4.0.0 | User properties |
| `maven.installation.settings` | `String` | Maven installation settings. |
`${maven.installation.conf}/settings.xml` | 4.0.0 | User properties |
| `maven.installation.toolchains` | `String` | Maven installation toolchains.
| `${maven.installation.conf}/toolchains.xml` | 4.0.0 | User properties |
+| `maven.logger.cacheOutputStream` | `Boolean` | If the output target is set
to "System.out" or "System.err" (see preceding entry), by default, logs will be
output to the latest value referenced by System.out/err variables. By setting
this parameter to true, the output stream will be cached, i.e. assigned once at
initialization time and re-used independently of the current value referenced
by System.out/err. | `false` | 4.0.0 | User properties |
+| `maven.logger.dateTimeFormat` | `String` | The date and time format to be
used in the output messages. The pattern describing the date and time format is
defined by SimpleDateFormat. If the format is not specified or is invalid, the
number of milliseconds since start up will be output. | - | 4.0.0 | User
properties |
+| `maven.logger.defaultLogLevel` | `String` | Default log level for all
instances of SimpleLogger. Must be one of ("trace", "debug", "info", "warn",
"error" or "off"). If not specified, defaults to "info". | - | 4.0.0 | User
properties |
+| `maven.logger.levelInBrackets` | `Boolean` | Should the level string be
output in brackets? Defaults to false. | `false` | 4.0.0 | User properties |
+| `maven.logger.logFile` | `String` | The output target which can be the path
to a file, or the special values "System.out" and "System.err". Default is
"System.err". | - | 4.0.0 | User properties |
+| `maven.logger.showDateTime` | `Boolean` | Set to true if you want the
current date and time to be included in output messages. Default is false. |
`false` | 4.0.0 | User properties |
+| `maven.logger.showLogName` | `Boolean` | Set to true if you want the Logger
instance name to be included in output messages. Defaults to true. | `true` |
4.0.0 | User properties |
+| `maven.logger.showShortLogName` | `Boolean` | Set to true if you want the
last component of the name to be included in output messages. Defaults to
false. | `false` | 4.0.0 | User properties |
+| `maven.logger.showThreadId` | `Boolean` | If you would like to output the
current thread id, then set to true. Defaults to false. | `false` | 4.0.0 |
User properties |
+| `maven.logger.showThreadName` | `Boolean` | Set to true if you want to
output the current thread name. Defaults to true. | `true` | 4.0.0 | User
properties |
+| `maven.logger.warnLevelString` | `String` | The string value output for the
warn level. Defaults to WARN. | `WARN` | 4.0.0 | User properties |
| `maven.modelBuilder.parallelism` | `Integer` | ProjectBuilder parallelism. |
`cores/2 + 1` | 4.0.0 | User properties |
| `maven.plugin.validation` | `String` | Plugin validation level. | `inline`
| 3.9.2 | User properties |
| `maven.plugin.validation.excludes` | `String` | Plugin validation
exclusions. | - | 3.9.6 | User properties |