SLING-3421 - logback initialization does not initialize correct loggers if there's a single false one
Incase of any exception with pattern fallback to default pattern
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1692244 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/commons/log/logback/internal/LogConfig.java b/src/main/java/org/apache/sling/commons/log/logback/internal/LogConfig.java
index e615db6..909c963 100644
--- a/src/main/java/org/apache/sling/commons/log/logback/internal/LogConfig.java
+++ b/src/main/java/org/apache/sling/commons/log/logback/internal/LogConfig.java
@@ -27,12 +27,16 @@
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.PatternLayout;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class LogConfig {
private static final String[] LEGACY_MARKERS = {
"{0}", "{1}", "{2}", "{3}", "{4}", "{5}"
};
+ private static final Logger log = LoggerFactory.getLogger(LogConfig.class);
+
private final String configPid;
private final Set<String> categories;
@@ -128,8 +132,13 @@
// Default {0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* [{2}] {3} {5}
// Convert patterns to %d{dd.MM.yyyy HH:mm:ss.SSS} *%level*
// [%thread] %logger %msg%n
- logBackPattern = MessageFormat.format(logBackPattern, "zero", "%marker", "%thread", "%logger", "%level",
- "%message") + "%n";
+ try {
+ logBackPattern = MessageFormat.format(logBackPattern, "zero", "%marker", "%thread", "%logger", "%level",
+ "%message") + "%n";
+ } catch (IllegalArgumentException e) {
+ log.warn("Invalid message format provided [{}]. Would use the default pattern",logBackPattern, e);
+ logBackPattern = LogConfigManager.LOG_PATTERN_DEFAULT;
+ }
}
PatternLayout pl = new PatternLayout();