Repository: logging-log4j2 Updated Branches: refs/heads/master 2fc6784f7 -> a6cf48e93
Allow for a logger to be defined as "Level, AppenderRef, AppenderRef, ..." Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/a6cf48e9 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/a6cf48e9 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/a6cf48e9 Branch: refs/heads/master Commit: a6cf48e934a6de94df5c302db6b55d29027c3cc8 Parents: 2fc6784 Author: Gary Gregory <[email protected]> Authored: Fri Sep 23 18:10:28 2016 -0700 Committer: Gary Gregory <[email protected]> Committed: Fri Sep 23 18:10:28 2016 -0700 ---------------------------------------------------------------------- .../log4j/config/Log4j1ConfigurationParser.java | 21 +++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/a6cf48e9/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationParser.java ---------------------------------------------------------------------- diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationParser.java b/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationParser.java index da9bc8f..b346fac 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationParser.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationParser.java @@ -23,6 +23,8 @@ import java.util.HashMap; import java.util.Map; import java.util.Properties; +import javax.swing.text.StyledEditorKit.ForegroundAction; + import org.apache.logging.log4j.Level; import org.apache.logging.log4j.core.appender.ConsoleAppender; import org.apache.logging.log4j.core.appender.FileAppender; @@ -34,10 +36,12 @@ import org.apache.logging.log4j.core.config.builder.api.ComponentBuilder; import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder; import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory; import org.apache.logging.log4j.core.config.builder.api.LayoutComponentBuilder; +import org.apache.logging.log4j.core.config.builder.api.LoggerComponentBuilder; import org.apache.logging.log4j.core.config.builder.api.RootLoggerComponentBuilder; import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration; import org.apache.logging.log4j.core.lookup.StrSubstitutor; import org.apache.logging.log4j.status.StatusLogger; +import org.apache.velocity.runtime.directive.Foreach; /** * Experimental parser for Log4j 1.2 properties configuration files. @@ -376,7 +380,22 @@ public class Log4j1ConfigurationParser { final String name = key.substring(preLength); final Object value = entry.getValue(); if (value != null) { - builder.add(builder.newLogger(name, Level.valueOf(value.toString()))); + // a Level may be followed by a list of Appender refs. + final String valueStr = value.toString(); + final String[] split = valueStr.split("\\s*,\\s*"); + final String levelStr = split.length > 0 ? split[0] : null; + if (levelStr == null) { + warn("Level is missing: " + entry); + } else { + final LoggerComponentBuilder newLogger = builder.newLogger(name, Level.valueOf(levelStr)); + if (split.length > 1) { + // Add Appenders to this logger + for (int i = 1; i < split.length; i++) { + newLogger.add(builder.newAppenderRef(split[i])); + } + } + builder.add(newLogger); + } } } }
