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 2022/01/20 01:18:54 UTC

[logging-log4j2] branch release-2.x updated (38c60ce -> 895e930)

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a change to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git.


    from 38c60ce  Use NIO in test helper.
     new 73a61dd  No tabs!
     new cad725d  Log4j 1.2 bridge now logs a warning instead of throwing an NullPointerException when building a Syslog appender with a missing "SyslogHost" param.
     new 895e930  Log4j 1.2 bridge now logs a warning instead of throwing an NullPointerException when building a Syslog appender with a missing "SyslogHost" param.

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../builders/appender/SyslogAppenderBuilder.java   |   3 +-
 .../config/Log4j1ConfigurationFactoryTest.java     | 315 ++++++++++-----------
 src/changes/changes.xml                            |   3 +
 3 files changed, 161 insertions(+), 160 deletions(-)

[logging-log4j2] 03/03: Log4j 1.2 bridge now logs a warning instead of throwing an NullPointerException when building a Syslog appender with a missing "SyslogHost" param.

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit 895e9306f64a3d58e42775dc0168613908ed9d80
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Jan 19 20:18:49 2022 -0500

    Log4j 1.2 bridge now logs a warning instead of throwing an
    NullPointerException when building a Syslog appender with a missing
    "SyslogHost" param.
---
 src/changes/changes.xml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 9757d13..c1ded31 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -130,6 +130,9 @@
       <action dev="ggregory" type="fix" issue="LOG4J2-3328" due-to="Gary Gregory">
         Log4j 1.2 bridge does not support system properties in log4j.xml.
       </action>
+      <action dev="ggregory" type="fix" due-to="Gary Gregory">
+        Log4j 1.2 bridge now logs a warning instead of throwing an NullPointerException when building a Syslog appender with a missing "SyslogHost" param.
+      </action>
       <action dev="ggregory" type="fix">
         JndiManager reverts to 2.17.0 behavior: Read the system property for each call.
       </action>

[logging-log4j2] 01/03: No tabs!

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit 73a61dd275c29646dc4d69bc0b5273707b3e55bb
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Jan 19 19:21:45 2022 -0500

    No tabs!
---
 .../config/Log4j1ConfigurationFactoryTest.java     | 315 ++++++++++-----------
 1 file changed, 156 insertions(+), 159 deletions(-)

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 205c876..45e0dab 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
@@ -55,8 +55,7 @@ public class Log4j1ConfigurationFactoryTest {
     static Configuration getConfiguration(final String configResource) throws URISyntaxException {
         final URL configLocation = ClassLoader.getSystemResource(configResource);
         assertNotNull(configResource, configLocation);
-        final Configuration configuration = new Log4j1ConfigurationFactory().getConfiguration(null, "test",
-                configLocation.toURI());
+        final Configuration configuration = new Log4j1ConfigurationFactory().getConfiguration(null, "test", configLocation.toURI());
         assertNotNull(configuration);
         return configuration;
     }
@@ -65,8 +64,7 @@ public class Log4j1ConfigurationFactoryTest {
         final Configuration configuration = getConfiguration(configResource);
         final String name = "Console";
         final ConsoleAppender appender = configuration.getAppender(name);
-        assertNotNull("Missing appender '" + name + "' in configuration " + configResource + " → " + configuration,
-                appender);
+        assertNotNull("Missing appender '" + name + "' in configuration " + configResource + " → " + configuration, appender);
         assertEquals(Target.SYSTEM_ERR, appender.getTarget());
         //
         final LoggerConfig loggerConfig = configuration.getLoggerConfig("com.example.foo");
@@ -77,173 +75,172 @@ public class Log4j1ConfigurationFactoryTest {
         return appender.getLayout();
     }
 
-	private Layout<?> testFile(final String configResource) throws Exception {
-		final Configuration configuration = getConfiguration(configResource);
-		final FileAppender appender = configuration.getAppender("File");
-		assertNotNull(appender);
-		assertEquals("target/mylog.txt", appender.getFileName());
-		//
-		final LoggerConfig loggerConfig = configuration.getLoggerConfig("com.example.foo");
-		assertNotNull(loggerConfig);
-		assertEquals(Level.DEBUG, loggerConfig.getLevel());
-		configuration.start();
-		configuration.stop();
-		return appender.getLayout();
-	}
-
-	@Test
-	public void testConsoleEnhancedPatternLayout() throws Exception {
-		final PatternLayout layout = (PatternLayout) testConsole(
-				"config-1.2/log4j-console-EnhancedPatternLayout.properties");
-		assertEquals("%d{ISO8601} [%t][%c] %-5p %properties %ndc: %m%n", layout.getConversionPattern());
-	}
-
-	@Test
-	public void testConsoleHtmlLayout() throws Exception {
-		final HtmlLayout layout = (HtmlLayout) testConsole("config-1.2/log4j-console-HtmlLayout.properties");
-		assertEquals("Headline", layout.getTitle());
-		assertTrue(layout.isLocationInfo());
-	}
-
-	@Test
-	public void testConsolePatternLayout() throws Exception {
-		final PatternLayout layout = (PatternLayout) testConsole("config-1.2/log4j-console-PatternLayout.properties");
-		assertEquals("%d{ISO8601} [%t][%c] %-5p: %m%n", layout.getConversionPattern());
-	}
-
-	@Test
-	public void testConsoleSimpleLayout() throws Exception {
-		final PatternLayout layout = (PatternLayout) testConsole("config-1.2/log4j-console-SimpleLayout.properties");
-		assertEquals("%level - %m%n", layout.getConversionPattern());
-	}
-
-	@Test
-	public void testConsoleTtccLayout() throws Exception {
-		final PatternLayout layout = (PatternLayout) testConsole("config-1.2/log4j-console-TTCCLayout.properties");
-		assertEquals("%r [%t] %p %notEmpty{%ndc }- %m%n", layout.getConversionPattern());
-	}
-
-	@Test
-	public void testConsoleXmlLayout() throws Exception {
-		final Log4j1XmlLayout layout = (Log4j1XmlLayout) testConsole("config-1.2/log4j-console-XmlLayout.properties");
-		assertTrue(layout.isLocationInfo());
-		assertFalse(layout.isProperties());
-	}
-
-	@Test
-	public void testFileSimpleLayout() throws Exception {
-		final PatternLayout layout = (PatternLayout) testFile("config-1.2/log4j-file-SimpleLayout.properties");
-		assertEquals("%level - %m%n", layout.getConversionPattern());
-	}
-
-	@Test
-	public void testNullAppender() throws Exception {
-		final Configuration configuration = getConfiguration("config-1.2/log4j-NullAppender.properties");
-		final Appender appender = configuration.getAppender("NullAppender");
-		assertNotNull(appender);
-		assertEquals("NullAppender", appender.getName());
-		assertTrue(appender.getClass().getName(), appender instanceof NullAppender);
-	}
-
-	@Test
-	public void testRollingFileAppender() throws Exception {
-		testRollingFileAppender("config-1.2/log4j-RollingFileAppender.properties", "RFA", "target/hadoop.log.%i");
-	}
-
-	@Test
-	public void testDailyRollingFileAppender() throws Exception {
-		testDailyRollingFileAppender("config-1.2/log4j-DailyRollingFileAppender.properties", "DRFA", "target/hadoop.log%d{.yyyy-MM-dd}");
-	}
-
-	@Test
-	public void testRollingFileAppenderWithProperties() throws Exception {
-		testRollingFileAppender("config-1.2/log4j-RollingFileAppender-with-props.properties", "RFA", "target/hadoop.log.%i");
-	}
-
-	@Test
-	public void testSystemProperties1() throws Exception {
+    private Layout<?> testFile(final String configResource) throws Exception {
+        final Configuration configuration = getConfiguration(configResource);
+        final FileAppender appender = configuration.getAppender("File");
+        assertNotNull(appender);
+        assertEquals("target/mylog.txt", appender.getFileName());
+        //
+        final LoggerConfig loggerConfig = configuration.getLoggerConfig("com.example.foo");
+        assertNotNull(loggerConfig);
+        assertEquals(Level.DEBUG, loggerConfig.getLevel());
+        configuration.start();
+        configuration.stop();
+        return appender.getLayout();
+    }
+
+    @Test
+    public void testConsoleEnhancedPatternLayout() throws Exception {
+        final PatternLayout layout = (PatternLayout) testConsole("config-1.2/log4j-console-EnhancedPatternLayout.properties");
+        assertEquals("%d{ISO8601} [%t][%c] %-5p %properties %ndc: %m%n", layout.getConversionPattern());
+    }
+
+    @Test
+    public void testConsoleHtmlLayout() throws Exception {
+        final HtmlLayout layout = (HtmlLayout) testConsole("config-1.2/log4j-console-HtmlLayout.properties");
+        assertEquals("Headline", layout.getTitle());
+        assertTrue(layout.isLocationInfo());
+    }
+
+    @Test
+    public void testConsolePatternLayout() throws Exception {
+        final PatternLayout layout = (PatternLayout) testConsole("config-1.2/log4j-console-PatternLayout.properties");
+        assertEquals("%d{ISO8601} [%t][%c] %-5p: %m%n", layout.getConversionPattern());
+    }
+
+    @Test
+    public void testConsoleSimpleLayout() throws Exception {
+        final PatternLayout layout = (PatternLayout) testConsole("config-1.2/log4j-console-SimpleLayout.properties");
+        assertEquals("%level - %m%n", layout.getConversionPattern());
+    }
+
+    @Test
+    public void testConsoleTtccLayout() throws Exception {
+        final PatternLayout layout = (PatternLayout) testConsole("config-1.2/log4j-console-TTCCLayout.properties");
+        assertEquals("%r [%t] %p %notEmpty{%ndc }- %m%n", layout.getConversionPattern());
+    }
+
+    @Test
+    public void testConsoleXmlLayout() throws Exception {
+        final Log4j1XmlLayout layout = (Log4j1XmlLayout) testConsole("config-1.2/log4j-console-XmlLayout.properties");
+        assertTrue(layout.isLocationInfo());
+        assertFalse(layout.isProperties());
+    }
+
+    @Test
+    public void testFileSimpleLayout() throws Exception {
+        final PatternLayout layout = (PatternLayout) testFile("config-1.2/log4j-file-SimpleLayout.properties");
+        assertEquals("%level - %m%n", layout.getConversionPattern());
+    }
+
+    @Test
+    public void testNullAppender() throws Exception {
+        final Configuration configuration = getConfiguration("config-1.2/log4j-NullAppender.properties");
+        final Appender appender = configuration.getAppender("NullAppender");
+        assertNotNull(appender);
+        assertEquals("NullAppender", appender.getName());
+        assertTrue(appender.getClass().getName(), appender instanceof NullAppender);
+    }
+
+    @Test
+    public void testRollingFileAppender() throws Exception {
+        testRollingFileAppender("config-1.2/log4j-RollingFileAppender.properties", "RFA", "target/hadoop.log.%i");
+    }
+
+    @Test
+    public void testDailyRollingFileAppender() throws Exception {
+        testDailyRollingFileAppender("config-1.2/log4j-DailyRollingFileAppender.properties", "DRFA", "target/hadoop.log%d{.yyyy-MM-dd}");
+    }
+
+    @Test
+    public void testRollingFileAppenderWithProperties() throws Exception {
+        testRollingFileAppender("config-1.2/log4j-RollingFileAppender-with-props.properties", "RFA", "target/hadoop.log.%i");
+    }
+
+    @Test
+    public void testSystemProperties1() throws Exception {
         final String tempFileName = System.getProperty("java.io.tmpdir") + "/hadoop.log";
         final Path tempFilePath = new File(tempFileName).toPath();
         Files.deleteIfExists(tempFilePath);
         try {
             final Configuration configuration = getConfiguration("config-1.2/log4j-system-properties-1.properties");
             final RollingFileAppender appender = configuration.getAppender("RFA");
-			appender.stop(10, TimeUnit.SECONDS);
+            appender.stop(10, TimeUnit.SECONDS);
             // System.out.println("expected: " + tempFileName + " Actual: " + appender.getFileName());
             assertEquals(tempFileName, appender.getFileName());
         } finally {
-			try {
-				Files.deleteIfExists(tempFilePath);
-			} catch (final FileSystemException e) {
-				e.printStackTrace();
-			}
+            try {
+                Files.deleteIfExists(tempFilePath);
+            } catch (final FileSystemException e) {
+                e.printStackTrace();
+            }
         }
-	}
-
-	@Test
-	public void testSystemProperties2() throws Exception {
-		final Configuration configuration = getConfiguration("config-1.2/log4j-system-properties-2.properties");
-		final RollingFileAppender appender = configuration.getAppender("RFA");
-		assertEquals("${java.io.tmpdir}/hadoop.log", appender.getFileName());
-		appender.stop(10, TimeUnit.SECONDS);
-		Path path = new File(appender.getFileName()).toPath();
+    }
+
+    @Test
+    public void testSystemProperties2() throws Exception {
+        final Configuration configuration = getConfiguration("config-1.2/log4j-system-properties-2.properties");
+        final RollingFileAppender appender = configuration.getAppender("RFA");
+        assertEquals("${java.io.tmpdir}/hadoop.log", appender.getFileName());
+        appender.stop(10, TimeUnit.SECONDS);
+        Path path = new File(appender.getFileName()).toPath();
         Files.deleteIfExists(path);
         path = new File("${java.io.tmpdir}").toPath();
         Files.deleteIfExists(path);
-	}
-
-	private void testRollingFileAppender(final String configResource, final String name, final String filePattern) throws URISyntaxException {
-		final Configuration configuration = getConfiguration(configResource);
-		final Appender appender = configuration.getAppender(name);
-		assertNotNull(appender);
-		assertEquals(name, appender.getName());
-		assertTrue(appender.getClass().getName(), appender instanceof RollingFileAppender);
-		final RollingFileAppender rfa = (RollingFileAppender) appender;
-		assertEquals("target/hadoop.log", rfa.getFileName());
-		assertEquals(filePattern, rfa.getFilePattern());
-		final TriggeringPolicy triggeringPolicy = rfa.getTriggeringPolicy();
-		assertNotNull(triggeringPolicy);
-		assertTrue(triggeringPolicy.getClass().getName(), triggeringPolicy instanceof CompositeTriggeringPolicy);
-		final CompositeTriggeringPolicy ctp = (CompositeTriggeringPolicy) triggeringPolicy;
-		final TriggeringPolicy[] triggeringPolicies = ctp.getTriggeringPolicies();
-		assertEquals(1, triggeringPolicies.length);
-		final TriggeringPolicy tp = triggeringPolicies[0];
-		assertTrue(tp.getClass().getName(), tp instanceof SizeBasedTriggeringPolicy);
-		final SizeBasedTriggeringPolicy sbtp = (SizeBasedTriggeringPolicy) tp;
-		assertEquals(256 * 1024 * 1024, sbtp.getMaxFileSize());
-		final RolloverStrategy rolloverStrategy = rfa.getManager().getRolloverStrategy();
-		assertTrue(rolloverStrategy.getClass().getName(), rolloverStrategy instanceof DefaultRolloverStrategy);
-		final DefaultRolloverStrategy drs = (DefaultRolloverStrategy) rolloverStrategy;
-		assertEquals(20, drs.getMaxIndex());
-		configuration.start();
-		configuration.stop();
-	}
-
-	private void testDailyRollingFileAppender(final String configResource, final String name, final String filePattern) throws URISyntaxException {
-		final Configuration configuration = getConfiguration(configResource);
-		final Appender appender = configuration.getAppender(name);
-		assertNotNull(appender);
-		assertEquals(name, appender.getName());
-		assertTrue(appender.getClass().getName(), appender instanceof RollingFileAppender);
-		final RollingFileAppender rfa = (RollingFileAppender) appender;
-		assertEquals("target/hadoop.log", rfa.getFileName());
-		assertEquals(filePattern, rfa.getFilePattern());
-		final TriggeringPolicy triggeringPolicy = rfa.getTriggeringPolicy();
-		assertNotNull(triggeringPolicy);
-		assertTrue(triggeringPolicy.getClass().getName(), triggeringPolicy instanceof CompositeTriggeringPolicy);
-		final CompositeTriggeringPolicy ctp = (CompositeTriggeringPolicy) triggeringPolicy;
-		final TriggeringPolicy[] triggeringPolicies = ctp.getTriggeringPolicies();
-		assertEquals(1, triggeringPolicies.length);
-		final TriggeringPolicy tp = triggeringPolicies[0];
-		assertTrue(tp.getClass().getName(), tp instanceof TimeBasedTriggeringPolicy);
-		final TimeBasedTriggeringPolicy tbtp = (TimeBasedTriggeringPolicy) tp;
-		assertEquals(1, tbtp.getInterval());
-		final RolloverStrategy rolloverStrategy = rfa.getManager().getRolloverStrategy();
-		assertTrue(rolloverStrategy.getClass().getName(), rolloverStrategy instanceof DefaultRolloverStrategy);
-		final DefaultRolloverStrategy drs = (DefaultRolloverStrategy) rolloverStrategy;
-		assertEquals(Integer.MAX_VALUE, drs.getMaxIndex());
-		configuration.start();
-		configuration.stop();
-	}
+    }
+
+    private void testRollingFileAppender(final String configResource, final String name, final String filePattern) throws URISyntaxException {
+        final Configuration configuration = getConfiguration(configResource);
+        final Appender appender = configuration.getAppender(name);
+        assertNotNull(appender);
+        assertEquals(name, appender.getName());
+        assertTrue(appender.getClass().getName(), appender instanceof RollingFileAppender);
+        final RollingFileAppender rfa = (RollingFileAppender) appender;
+        assertEquals("target/hadoop.log", rfa.getFileName());
+        assertEquals(filePattern, rfa.getFilePattern());
+        final TriggeringPolicy triggeringPolicy = rfa.getTriggeringPolicy();
+        assertNotNull(triggeringPolicy);
+        assertTrue(triggeringPolicy.getClass().getName(), triggeringPolicy instanceof CompositeTriggeringPolicy);
+        final CompositeTriggeringPolicy ctp = (CompositeTriggeringPolicy) triggeringPolicy;
+        final TriggeringPolicy[] triggeringPolicies = ctp.getTriggeringPolicies();
+        assertEquals(1, triggeringPolicies.length);
+        final TriggeringPolicy tp = triggeringPolicies[0];
+        assertTrue(tp.getClass().getName(), tp instanceof SizeBasedTriggeringPolicy);
+        final SizeBasedTriggeringPolicy sbtp = (SizeBasedTriggeringPolicy) tp;
+        assertEquals(256 * 1024 * 1024, sbtp.getMaxFileSize());
+        final RolloverStrategy rolloverStrategy = rfa.getManager().getRolloverStrategy();
+        assertTrue(rolloverStrategy.getClass().getName(), rolloverStrategy instanceof DefaultRolloverStrategy);
+        final DefaultRolloverStrategy drs = (DefaultRolloverStrategy) rolloverStrategy;
+        assertEquals(20, drs.getMaxIndex());
+        configuration.start();
+        configuration.stop();
+    }
+
+    private void testDailyRollingFileAppender(final String configResource, final String name, final String filePattern) throws URISyntaxException {
+        final Configuration configuration = getConfiguration(configResource);
+        final Appender appender = configuration.getAppender(name);
+        assertNotNull(appender);
+        assertEquals(name, appender.getName());
+        assertTrue(appender.getClass().getName(), appender instanceof RollingFileAppender);
+        final RollingFileAppender rfa = (RollingFileAppender) appender;
+        assertEquals("target/hadoop.log", rfa.getFileName());
+        assertEquals(filePattern, rfa.getFilePattern());
+        final TriggeringPolicy triggeringPolicy = rfa.getTriggeringPolicy();
+        assertNotNull(triggeringPolicy);
+        assertTrue(triggeringPolicy.getClass().getName(), triggeringPolicy instanceof CompositeTriggeringPolicy);
+        final CompositeTriggeringPolicy ctp = (CompositeTriggeringPolicy) triggeringPolicy;
+        final TriggeringPolicy[] triggeringPolicies = ctp.getTriggeringPolicies();
+        assertEquals(1, triggeringPolicies.length);
+        final TriggeringPolicy tp = triggeringPolicies[0];
+        assertTrue(tp.getClass().getName(), tp instanceof TimeBasedTriggeringPolicy);
+        final TimeBasedTriggeringPolicy tbtp = (TimeBasedTriggeringPolicy) tp;
+        assertEquals(1, tbtp.getInterval());
+        final RolloverStrategy rolloverStrategy = rfa.getManager().getRolloverStrategy();
+        assertTrue(rolloverStrategy.getClass().getName(), rolloverStrategy instanceof DefaultRolloverStrategy);
+        final DefaultRolloverStrategy drs = (DefaultRolloverStrategy) rolloverStrategy;
+        assertEquals(Integer.MAX_VALUE, drs.getMaxIndex());
+        configuration.start();
+        configuration.stop();
+    }
 
 }

[logging-log4j2] 02/03: Log4j 1.2 bridge now logs a warning instead of throwing an NullPointerException when building a Syslog appender with a missing "SyslogHost" param.

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit cad725d9c1b2f3c8b65dfdcf89d0e5dce537acbc
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Jan 19 20:17:51 2022 -0500

    Log4j 1.2 bridge now logs a warning instead of throwing an
    NullPointerException when building a Syslog appender with a missing
    "SyslogHost" param.
---
 .../java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java
index 21b9f96..d2e6aa9 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java
@@ -45,6 +45,7 @@ import org.apache.logging.log4j.core.layout.SyslogLayout;
 import org.apache.logging.log4j.core.net.Facility;
 import org.apache.logging.log4j.core.net.Protocol;
 import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.Strings;
 import org.w3c.dom.Element;
 
 /**
@@ -165,7 +166,7 @@ public class SyslogAppenderBuilder extends AbstractBuilder implements AppenderBu
         //  If not an unbracketed IPv6 address then
         //      parse as a URL
         //
-        String[] parts = syslogHost.split(":");
+        final String[] parts = syslogHost != null ? syslogHost.split(":") : Strings.EMPTY_ARRAY;
         if (parts.length == 1) {
             host.set(parts[0]);
             port.set(DEFAULT_PORT);