You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2026/04/21 15:38:31 UTC
(maven) branch maven-3.10.x updated: Optimize log level rendering in MavenSimpleLogger (#11969)
This is an automated email from the ASF dual-hosted git repository.
slawekjaranowski pushed a commit to branch maven-3.10.x
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/maven-3.10.x by this push:
new 717f87fea7 Optimize log level rendering in MavenSimpleLogger (#11969)
717f87fea7 is described below
commit 717f87fea71d818fb22e2347d818b0d6d5386ab8
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Tue Apr 21 17:38:25 2026 +0200
Optimize log level rendering in MavenSimpleLogger (#11969)
* Optimize log level rendering in MavenSimpleLogger
What changed:
- Cached rendered log level strings to improve performance.
- Removed redundant calls to the builder for each log level.
- Initialized rendered levels only once during the first call.
Why:
- Enhances efficiency by reducing object creation during logging.
- Improves overall logging performance in Maven.
* Remove redundant implementation of getLogger method in MavenSimpleLoggerFactory
---
.../java/org/slf4j/simple/MavenSimpleLogger.java | 26 +++++++++++++++++-----
.../org/slf4j/simple/MavenSimpleLoggerFactory.java | 13 -----------
2 files changed, 21 insertions(+), 18 deletions(-)
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/simple/MavenSimpleLogger.java b/maven-slf4j-provider/src/main/java/org/slf4j/simple/MavenSimpleLogger.java
index 83516f834d..b11568661e 100644
--- a/maven-slf4j-provider/src/main/java/org/slf4j/simple/MavenSimpleLogger.java
+++ b/maven-slf4j-provider/src/main/java/org/slf4j/simple/MavenSimpleLogger.java
@@ -29,24 +29,40 @@
*/
public class MavenSimpleLogger extends SimpleLogger {
+ private String traceRenderedLevel;
+ private String debugRenderedLevel;
+ private String infoRenderedLevel;
+ private String warnRenderedLevel;
+ private String errorRenderedLevel;
+
MavenSimpleLogger(String name) {
super(name);
}
@Override
protected String renderLevel(int level) {
+ // lazy initialization at first use
+ // cannot be done in constructor because ansi terminals are not configured yet
+ if (traceRenderedLevel == null) {
+ traceRenderedLevel = builder().trace("TRACE").build();
+ debugRenderedLevel = builder().debug("DEBUG").build();
+ infoRenderedLevel = builder().info("INFO").build();
+ warnRenderedLevel = builder().warning("WARNING").build();
+ errorRenderedLevel = builder().error("ERROR").build();
+ }
+
switch (level) {
case LOG_LEVEL_TRACE:
- return builder().trace("TRACE").toString();
+ return traceRenderedLevel;
case LOG_LEVEL_DEBUG:
- return builder().debug("DEBUG").toString();
+ return debugRenderedLevel;
case LOG_LEVEL_INFO:
- return builder().info("INFO").toString();
+ return infoRenderedLevel;
case LOG_LEVEL_WARN:
- return builder().warning("WARNING").toString();
+ return warnRenderedLevel;
case LOG_LEVEL_ERROR:
default:
- return builder().error("ERROR").toString();
+ return errorRenderedLevel;
}
}
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/simple/MavenSimpleLoggerFactory.java b/maven-slf4j-provider/src/main/java/org/slf4j/simple/MavenSimpleLoggerFactory.java
index a0ae41cff9..815cbf1788 100644
--- a/maven-slf4j-provider/src/main/java/org/slf4j/simple/MavenSimpleLoggerFactory.java
+++ b/maven-slf4j-provider/src/main/java/org/slf4j/simple/MavenSimpleLoggerFactory.java
@@ -24,19 +24,6 @@
* MavenSimpleLoggerFactory
*/
public class MavenSimpleLoggerFactory extends SimpleLoggerFactory {
- /**
- * Return an appropriate {@link MavenSimpleLogger} instance by name.
- */
- public Logger getLogger(String name) {
- Logger simpleLogger = loggerMap.get(name);
- if (simpleLogger != null) {
- return simpleLogger;
- } else {
- Logger newInstance = new MavenSimpleLogger(name);
- Logger oldInstance = loggerMap.putIfAbsent(name, newInstance);
- return oldInstance == null ? newInstance : oldInstance;
- }
- }
@Override
protected Logger createLogger(String name) {