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 83516f834dd7..b11568661eaa 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 a0ae41cff961..815cbf1788c9 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) {