You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2016/03/09 09:42:48 UTC
logging-log4j2 git commit: [LOG4J2-63] Support configuration from
version 1.x log4j.properties. Partial support for XML and HTML layouts
(defaults only).
Repository: logging-log4j2
Updated Branches:
refs/heads/master 9a01ec66e -> 1ecb8ec81
[LOG4J2-63] Support configuration from version 1.x log4j.properties.
Partial support for XML and HTML layouts (defaults only).
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/1ecb8ec8
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/1ecb8ec8
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/1ecb8ec8
Branch: refs/heads/master
Commit: 1ecb8ec81d75a4dedf6dada396af1699bb169d58
Parents: 9a01ec6
Author: ggregory <gg...@apache.org>
Authored: Wed Mar 9 00:42:41 2016 -0800
Committer: ggregory <gg...@apache.org>
Committed: Wed Mar 9 00:42:41 2016 -0800
----------------------------------------------------------------------
log4j-1.2-api/pom.xml | 5 ++++
.../config/Log4j1ConfigurationFactory.java | 20 +++++++++-----
.../config/Log4j1ConfigurationFactoryTest.java | 28 +++++++++++++++-----
.../log4j-console-HtmlLayout.properties | 18 +++++++++++++
.../log4j-console-XmlLayout.properties | 18 +++++++++++++
5 files changed, 77 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ecb8ec8/log4j-1.2-api/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-1.2-api/pom.xml b/log4j-1.2-api/pom.xml
index b5d8814..7fea76d 100644
--- a/log4j-1.2-api/pom.xml
+++ b/log4j-1.2-api/pom.xml
@@ -80,6 +80,11 @@
<artifactId>commons-io</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-xml</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
<plugins>
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ecb8ec8/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationFactory.java
----------------------------------------------------------------------
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationFactory.java b/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationFactory.java
index 470a3fe..0e5d8d6 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationFactory.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationFactory.java
@@ -54,6 +54,8 @@ import org.apache.logging.log4j.status.StatusLogger;
* <li>Target</li>
* <li>layout = org.apache.log4j.PatternLayout</li>
* <li>layout = org.apache.log4j.SimpleLayout</li>
+ * <li>layout = org.apache.log4j.HtmlLayout (partial)</li>
+ * <li>layout = org.apache.log4j.XmlLayout (partial)</li>
* <li>layout.ConversionPattern</li>
* </ul>
* </ul>
@@ -94,25 +96,31 @@ public class Log4j1ConfigurationFactory extends ConfigurationFactory {
final ConfigurationBuilder<BuiltConfiguration> builder) {
final AppenderComponentBuilder appenderBuilder = builder.newAppender(name, "CONSOLE");
buildConsoleAppenderTarget(properties, name, builder, appenderBuilder);
- buildConsoleAppenderLayout(properties, name, builder, appenderBuilder);
+ buildAppenderLayout(properties, name, builder, appenderBuilder);
buildConsoleAppenderFollow(properties, name, builder, appenderBuilder);
builder.add(appenderBuilder);
}
- private void buildConsoleAppenderLayout(final Properties properties, final String name,
+ private void buildAppenderLayout(final Properties properties, final String name,
final ConfigurationBuilder<BuiltConfiguration> builder, final AppenderComponentBuilder appenderBuilder) {
final String layoutValue = getLog4jAppenderValue(properties, name, "layout", null);
if (layoutValue != null) {
final String cpValue = getLog4jAppenderValue(properties, name, "layout.ConversionPattern", null);
switch (layoutValue) {
case "org.apache.log4j.PatternLayout": {
- final LayoutComponentBuilder layoutBuilder = newPatternLayout(builder, cpValue);
- appenderBuilder.add(layoutBuilder);
+ appenderBuilder.add(newPatternLayout(builder, cpValue));
break;
}
case "org.apache.log4j.SimpleLayout": {
- final LayoutComponentBuilder layoutBuilder = newPatternLayout(builder, "%level - %m%n");
- appenderBuilder.add(layoutBuilder);
+ appenderBuilder.add(newPatternLayout(builder, "%level - %m%n"));
+ break;
+ }
+ case "org.apache.log4j.HTMLLayout": {
+ appenderBuilder.add(builder.newLayout("HtmlLayout"));
+ break;
+ }
+ case "org.apache.log4j.XMLLayout": {
+ appenderBuilder.add(builder.newLayout("XmlLayout"));
break;
}
default:
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ecb8ec8/log4j-1.2-api/src/test/java/org/apache/log4j/config/Log4j1ConfigurationFactoryTest.java
----------------------------------------------------------------------
diff --git a/log4j-1.2-api/src/test/java/org/apache/log4j/config/Log4j1ConfigurationFactoryTest.java b/log4j-1.2-api/src/test/java/org/apache/log4j/config/Log4j1ConfigurationFactoryTest.java
index 13bcdc2..c31fe37 100644
--- a/log4j-1.2-api/src/test/java/org/apache/log4j/config/Log4j1ConfigurationFactoryTest.java
+++ b/log4j-1.2-api/src/test/java/org/apache/log4j/config/Log4j1ConfigurationFactoryTest.java
@@ -19,17 +19,20 @@ package org.apache.log4j.config;
import java.net.URL;
import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.core.Layout;
import org.apache.logging.log4j.core.appender.ConsoleAppender;
import org.apache.logging.log4j.core.appender.ConsoleAppender.Target;
import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.config.LoggerConfig;
+import org.apache.logging.log4j.core.layout.HtmlLayout;
import org.apache.logging.log4j.core.layout.PatternLayout;
+import org.apache.logging.log4j.core.layout.XmlLayout;
import org.junit.Assert;
import org.junit.Test;
public class Log4j1ConfigurationFactoryTest {
- private void testConsole(final String configResource, final String expectedPattern) throws Exception {
+ private Layout<?> testConsole(final String configResource) throws Exception {
final URL configLocation = ClassLoader.getSystemResource(configResource);
Assert.assertNotNull(configLocation);
final Configuration configuration = new Log4j1ConfigurationFactory().getConfiguration("test",
@@ -38,23 +41,36 @@ public class Log4j1ConfigurationFactoryTest {
final ConsoleAppender appender = configuration.getAppender("Console");
Assert.assertNotNull(appender);
// Can't set ImmediateFlush for a Console Appender in Log4j 2 like you can in 1.2
- Assert.assertTrue(appender.getImmediateFlush());
+ Assert.assertTrue(appender.getImmediateFlush());
Assert.assertEquals(Target.SYSTEM_ERR, appender.getTarget());
- final PatternLayout layout = (PatternLayout) appender.getLayout();
- Assert.assertEquals(expectedPattern, layout.getConversionPattern());
//
final LoggerConfig loggerConfig = configuration.getLoggerConfig("com.example.foo");
Assert.assertNotNull(loggerConfig);
Assert.assertEquals(Level.DEBUG, loggerConfig.getLevel());
+ return appender.getLayout();
+ }
+
+ @Test
+ public void testConsoleHtmlLayout() throws Exception {
+ final Layout<?> layout = testConsole("config-1.2/log4j-console-HtmlLayout.properties");
+ Assert.assertTrue(layout instanceof HtmlLayout);
}
@Test
public void testConsolePatternLayout() throws Exception {
- testConsole("config-1.2/log4j-console-PatternLayout.properties", "%d{ISO8601} [%t][%c] %-5p: %m%n");
+ final PatternLayout layout = (PatternLayout) testConsole("config-1.2/log4j-console-PatternLayout.properties");
+ Assert.assertEquals("%d{ISO8601} [%t][%c] %-5p: %m%n", layout.getConversionPattern());
}
@Test
public void testConsoleSimpleLayout() throws Exception {
- testConsole("config-1.2/log4j-console-SimpleLayout.properties", "%level - %m%n");
+ final PatternLayout layout = (PatternLayout) testConsole("config-1.2/log4j-console-SimpleLayout.properties");
+ Assert.assertEquals("%level - %m%n", layout.getConversionPattern());
+ }
+
+ @Test
+ public void testConsoleXmlLayout() throws Exception {
+ final Layout<?> layout = testConsole("config-1.2/log4j-console-XmlLayout.properties");
+ Assert.assertTrue(layout instanceof XmlLayout);
}
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ecb8ec8/log4j-1.2-api/src/test/resources/config-1.2/log4j-console-HtmlLayout.properties
----------------------------------------------------------------------
diff --git a/log4j-1.2-api/src/test/resources/config-1.2/log4j-console-HtmlLayout.properties b/log4j-1.2-api/src/test/resources/config-1.2/log4j-console-HtmlLayout.properties
new file mode 100644
index 0000000..decd369
--- /dev/null
+++ b/log4j-1.2-api/src/test/resources/config-1.2/log4j-console-HtmlLayout.properties
@@ -0,0 +1,18 @@
+###############################################################################
+#
+# Log4J 1.2 Configuration.
+#
+
+log4j.rootLogger=TRACE, Console
+
+##############################################################################
+#
+# The Console log
+#
+
+log4j.appender.Console=org.apache.log4j.ConsoleAppender
+log4j.appender.Console.ImmediateFlush=false
+log4j.appender.Console.Target=System.err
+log4j.appender.Console.layout=org.apache.log4j.HTMLLayout
+
+log4j.logger.com.example.foo = DEBUG
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ecb8ec8/log4j-1.2-api/src/test/resources/config-1.2/log4j-console-XmlLayout.properties
----------------------------------------------------------------------
diff --git a/log4j-1.2-api/src/test/resources/config-1.2/log4j-console-XmlLayout.properties b/log4j-1.2-api/src/test/resources/config-1.2/log4j-console-XmlLayout.properties
new file mode 100644
index 0000000..155b1ff
--- /dev/null
+++ b/log4j-1.2-api/src/test/resources/config-1.2/log4j-console-XmlLayout.properties
@@ -0,0 +1,18 @@
+###############################################################################
+#
+# Log4J 1.2 Configuration.
+#
+
+log4j.rootLogger=TRACE, Console
+
+##############################################################################
+#
+# The Console log
+#
+
+log4j.appender.Console=org.apache.log4j.ConsoleAppender
+log4j.appender.Console.ImmediateFlush=false
+log4j.appender.Console.Target=System.err
+log4j.appender.Console.layout=org.apache.log4j.XMLLayout
+
+log4j.logger.com.example.foo = DEBUG