[ https://issues.apache.org/jira/browse/APEXCORE-785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16272167#comment-16272167 ]
ASF GitHub Bot commented on APEXCORE-785: ----------------------------------------- PramodSSImmaneni closed pull request #584: APEXCORE-785 Cleanup unit tests log4j.properties URL: https://github.com/apache/apex-core/pull/584 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/api/src/test/resources/log4j.properties b/api/src/test/resources/log4j.properties index 329524aeda..c7cc0bf15b 100644 --- a/api/src/test/resources/log4j.properties +++ b/api/src/test/resources/log4j.properties @@ -17,25 +17,22 @@ # under the License. # -log4j.rootLogger=INFO,CONSOLE +# Set root logger level to WARN to not flood build logs +# set manually to DEBUG or INFO for debugging purposes +log4j.rootLogger=warn, root -log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender -log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout -log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n +# Redirect root appender to standard error +log4j.appender.root=org.apache.log4j.ConsoleAppender +log4j.appender.root.target=System.err +log4j.appender.root.layout=org.apache.log4j.PatternLayout +log4j.appender.root.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n -log4j.appender.malhar=org.apache.log4j.RollingFileAppender -log4j.appender.malhar.layout=org.apache.log4j.PatternLayout -log4j.appender.malhar.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n -#log4j.appender.malhar.File=/tmp/app.log +log4j.appender.apex=org.apache.log4j.ConsoleAppender +log4j.appender.apex.layout=org.apache.log4j.PatternLayout +log4j.appender.apex.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n -# to enable, add SYSLOG to rootLogger -log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender -log4j.appender.SYSLOG.syslogHost=127.0.0.1 -log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout -log4j.appender.SYSLOG.layout.conversionPattern=${dt.cid} %-5p [%t] %c{2} %x - %m%n -log4j.appender.SYSLOG.Facility=LOCAL1 +log4j.logger.com.datatorrent=info, apex +log4j.additivity.com.datatorrent=false +log4j.logger.org.apache.apex=info, apex +log4j.additivity.org.apache.apex=false -#log4j.logger.org=info -#log4j.logger.org.apache.commons.beanutils=warn -log4j.logger.com.datatorrent=info -log4j.logger.org.apache.apex=info diff --git a/bufferserver/src/test/resources/log4j.properties b/bufferserver/src/test/resources/log4j.properties index 329524aeda..5ed504bc41 100644 --- a/bufferserver/src/test/resources/log4j.properties +++ b/bufferserver/src/test/resources/log4j.properties @@ -17,25 +17,21 @@ # under the License. # -log4j.rootLogger=INFO,CONSOLE +# Set root logger level to WARN to not flood build logs +# set manually to DEBUG or INFO for debugging purposes +log4j.rootLogger=warn, root -log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender -log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout -log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n +# Redirect root appender to standard error +log4j.appender.root=org.apache.log4j.ConsoleAppender +log4j.appender.root.target=System.err +log4j.appender.root.layout=org.apache.log4j.PatternLayout +log4j.appender.root.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n -log4j.appender.malhar=org.apache.log4j.RollingFileAppender -log4j.appender.malhar.layout=org.apache.log4j.PatternLayout -log4j.appender.malhar.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n -#log4j.appender.malhar.File=/tmp/app.log +log4j.appender.apex=org.apache.log4j.ConsoleAppender +log4j.appender.apex.layout=org.apache.log4j.PatternLayout +log4j.appender.apex.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n -# to enable, add SYSLOG to rootLogger -log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender -log4j.appender.SYSLOG.syslogHost=127.0.0.1 -log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout -log4j.appender.SYSLOG.layout.conversionPattern=${dt.cid} %-5p [%t] %c{2} %x - %m%n -log4j.appender.SYSLOG.Facility=LOCAL1 - -#log4j.logger.org=info -#log4j.logger.org.apache.commons.beanutils=warn -log4j.logger.com.datatorrent=info -log4j.logger.org.apache.apex=info +log4j.logger.com.datatorrent=info, apex +log4j.additivity.com.datatorrent=false +log4j.logger.org.apache.apex=info, apex +log4j.additivity.org.apache.apex=false diff --git a/common/src/test/resources/log4j.properties b/common/src/test/resources/log4j.properties index 3205da522d..5ed504bc41 100644 --- a/common/src/test/resources/log4j.properties +++ b/common/src/test/resources/log4j.properties @@ -17,24 +17,21 @@ # under the License. # -log4j.rootLogger=INFO,CONSOLE +# Set root logger level to WARN to not flood build logs +# set manually to DEBUG or INFO for debugging purposes +log4j.rootLogger=warn, root -log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender -log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout -log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n +# Redirect root appender to standard error +log4j.appender.root=org.apache.log4j.ConsoleAppender +log4j.appender.root.target=System.err +log4j.appender.root.layout=org.apache.log4j.PatternLayout +log4j.appender.root.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n -log4j.appender.malhar=org.apache.log4j.RollingFileAppender -log4j.appender.malhar.layout=org.apache.log4j.PatternLayout -log4j.appender.malhar.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n -#log4j.appender.malhar.File=/tmp/app.log +log4j.appender.apex=org.apache.log4j.ConsoleAppender +log4j.appender.apex.layout=org.apache.log4j.PatternLayout +log4j.appender.apex.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n -# to enable, add SYSLOG to rootLogger -log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender -log4j.appender.SYSLOG.syslogHost=127.0.0.1 -log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout -log4j.appender.SYSLOG.layout.conversionPattern=${dt.cid} %-5p [%t] %c{2} %x - %m%n -log4j.appender.SYSLOG.Facility=LOCAL1 - -log4j.logger.com.datatorrent=info -log4j.logger.org.apache.apex=info -log4j.logger.org.getopt.util.hash=info +log4j.logger.com.datatorrent=info, apex +log4j.additivity.com.datatorrent=false +log4j.logger.org.apache.apex=info, apex +log4j.additivity.org.apache.apex=false diff --git a/engine/src/test/java/com/datatorrent/stram/util/LoggerUtilTest.java b/engine/src/test/java/com/datatorrent/stram/util/LoggerUtilTest.java index 770144101b..8f5879f06f 100644 --- a/engine/src/test/java/com/datatorrent/stram/util/LoggerUtilTest.java +++ b/engine/src/test/java/com/datatorrent/stram/util/LoggerUtilTest.java @@ -18,8 +18,11 @@ */ package com.datatorrent.stram.util; +import java.util.Enumeration; +import java.util.HashMap; import java.util.Map; +import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.FixMethodOrder; import org.junit.Test; @@ -27,11 +30,13 @@ import org.slf4j.LoggerFactory; import org.apache.log4j.Appender; +import org.apache.log4j.AppenderSkeleton; import org.apache.log4j.Category; import org.apache.log4j.ConsoleAppender; import org.apache.log4j.Level; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; +import org.apache.log4j.Priority; import org.apache.log4j.spi.LoggingEvent; import com.google.common.collect.Maps; @@ -51,6 +56,8 @@ public class LoggerUtilTest { private static final org.slf4j.Logger logger = LoggerFactory.getLogger(LoggerUtilTest.class); + private static final Logger log4jLogger = LogManager.getLogger(LoggerUtilTest.class); + private static final Map<AppenderSkeleton, Priority> appenderLevelMap = new HashMap<>(); @BeforeClass public static void setup() throws Exception @@ -58,8 +65,37 @@ public static void setup() throws Exception logger.debug("Logger repository before LoggerUtil.changeLoggersLevel() {}", LogManager.getLoggerRepository()); LoggerUtil.changeLoggersLevel(Maps.<String, String>newHashMap()); logger.debug("Logger repository after LoggerUtil.changeLoggersLevel() {}", LogManager.getLoggerRepository()); + log4jLogger.setLevel(Level.TRACE); + Category category = log4jLogger; + while (category != null) { + Enumeration appenders = category.getAllAppenders(); + while (appenders.hasMoreElements()) { + Object o = appenders.nextElement(); + if (o instanceof AppenderSkeleton) { + AppenderSkeleton appender = (AppenderSkeleton)o; + if (!appenderLevelMap.containsKey(appender)) { + appenderLevelMap.put(appender, appender.getThreshold()); + appender.setThreshold(Level.INFO); + } + } + } + if (category.getAdditivity()) { + category = category.getParent(); + } else { + category = null; + } + } } + @AfterClass + public static void teardown() + { + for (Map.Entry<AppenderSkeleton, Priority> e : appenderLevelMap.entrySet()) { + e.getKey().setThreshold(e.getValue()); + } + } + + @Test public void testGetPatternLevels() { @@ -178,7 +214,6 @@ public void testParentLevel() @Test public void testAppender() { - logger.info("Running Appender Test"); String appenderName = "testAppender"; String appenderName1 = "testAppender1"; String args = "log4j.appender.testAppender=com.datatorrent.stram.util.LoggerUtilTest$TestAppender" @@ -188,39 +223,45 @@ public void testAppender() + ",log4j.appender.testAppender1.layout=org.apache.log4j.PatternLayout" + ",log4j.appender.testAppender1.layout.ConversionPattern=%d %d{Z} [%t] %-5p (%F:%L) - %m%n"; - assertTrue(LoggerUtil.addAppenders(new String[] {appenderName }, args, ",")); - TestAppender appender = (TestAppender)LogManager.getRootLogger().getAppender(appenderName); + assertTrue(LoggerUtil.addAppenders(log4jLogger, new String[] {appenderName}, args, ",")); + TestAppender appender = (TestAppender)log4jLogger.getAppender(appenderName); - logger.info(args); + LoggerUtilTest.logger.debug(args); assertEquals(args, appender.lastMessage); - assertEquals(appender.level, Level.INFO); + assertEquals(appender.level, Level.DEBUG); - logger.warn(appenderName1); + LoggerUtilTest.logger.trace(appenderName1); assertEquals(appenderName1, appender.lastMessage); - assertEquals(appender.level, Level.WARN); + assertEquals(appender.level, Level.TRACE); // don't allow to add an appender with the same name - assertFalse(LoggerUtil.addAppenders(new String[] {appenderName }, args, ",")); - logger.info("Test Appender is added: " + LoggerUtil.getAppendersNames()); - testAndRemoveAppender(appenderName); - logger.info("Test Appender is removed: " + LoggerUtil.getAppendersNames()); + assertFalse(LoggerUtil.addAppenders(log4jLogger, new String[] {appenderName}, args, ",")); + LoggerUtilTest.logger.debug("Test Appender is added: {}", LoggerUtil.getAppendersNames(log4jLogger)); + testAndRemoveAppender(log4jLogger, appenderName); + LoggerUtilTest.logger.debug("Test Appender is removed: {}", LoggerUtil.getAppendersNames(log4jLogger)); + + Logger rootLogger = LogManager.getRootLogger(); + assertTrue(LoggerUtil.addAppenders(rootLogger, new String[] {appenderName}, args, ",")); + LoggerUtilTest.logger.debug("Test Appender is added: {}", LoggerUtil.getAppendersNames()); + testAndRemoveAppender(rootLogger, appenderName); + LoggerUtilTest.logger.debug("Test Appender is removed: {}", LoggerUtil.getAppendersNames()); System.setProperty(Context.DAGContext.LOGGER_APPENDER.getLongName(), appenderName + "," + appenderName1 + ";" + args); assertTrue(LoggerUtil.addAppenders()); - logger.info("Test Appenders are added: " + LoggerUtil.getAppendersNames()); + LoggerUtilTest.logger.debug("Test Appenders are added: {}", LoggerUtil.getAppendersNames()); - testAndRemoveAppender(appenderName); - testAndRemoveAppender(appenderName1); - logger.info("Test Appenders are removed: " + LoggerUtil.getAppendersNames()); + testAndRemoveAppender(rootLogger, appenderName); + testAndRemoveAppender(rootLogger, appenderName1); + LoggerUtilTest.logger.debug("Test Appenders are removed: {}", LoggerUtil.getAppendersNames()); } - private static void testAndRemoveAppender(String name) + private static void testAndRemoveAppender(Logger logger, String name) { - Appender appender = org.apache.log4j.Logger.getRootLogger().getAppender(name); + Appender appender = logger.getAppender(name); assertNotNull(appender); - assertTrue(LoggerUtil.getAppendersNames().contains(name)); - LoggerUtil.removeAppender(name); - assertNull(org.apache.log4j.Logger.getRootLogger().getAppender(name)); + assertTrue(LoggerUtil.getAppendersNames(logger).contains(name)); + LoggerUtil.removeAppender(logger, name); + assertNull(logger.getAppender(name)); } @Test @@ -238,17 +279,16 @@ public void testSetupMDC() System.setProperty(APPLICATION_NAME.getLongName(), application); LoggerUtil.setupMDC(service); - Logger logger = LogManager.getLogger(LoggerUtilTest.class); - LoggerUtil.addAppenders(logger, new String[] {appenderName}, args, ","); - TestAppender appender = (TestAppender)logger.getAppender(appenderName); + LoggerUtil.addAppenders(log4jLogger, new String[] {appenderName}, args, ","); + TestAppender appender = (TestAppender)log4jLogger.getAppender(appenderName); - LoggerUtilTest.logger.info(args); + LoggerUtilTest.logger.debug(args); assertEquals(service, appender.mdcProperties.get("apex.service")); String node = StramClientUtils.getHostName(); assertEquals(node == null ? "unknown" : node, appender.mdcProperties.get("apex.node")); assertEquals(application, appender.mdcProperties.get("apex.application")); - assertTrue(LoggerUtil.removeAppender(logger, appenderName)); + assertTrue(LoggerUtil.removeAppender(log4jLogger, appenderName)); } public static class TestAppender extends ConsoleAppender @@ -263,7 +303,6 @@ public void append(LoggingEvent event) mdcProperties = event.getProperties(); lastMessage = event.getRenderedMessage(); level = event.getLevel(); - super.append(event); } } } diff --git a/engine/src/test/resources/log4j.properties b/engine/src/test/resources/log4j.properties index 5933804285..0ccdb7f966 100644 --- a/engine/src/test/resources/log4j.properties +++ b/engine/src/test/resources/log4j.properties @@ -17,28 +17,24 @@ # under the License. # -log4j.rootLogger=INFO,CONSOLE +# Set root logger level to WARN to not flood build logs +# set manually to DEBUG or INFO for debugging purposes +log4j.rootLogger=warn, root -log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender -log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout -log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n +# Redirect root appender to standard error +log4j.appender.root=org.apache.log4j.ConsoleAppender +log4j.appender.root.target=System.err +log4j.appender.root.layout=org.apache.log4j.PatternLayout +log4j.appender.root.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n -log4j.appender.malhar=org.apache.log4j.RollingFileAppender -log4j.appender.malhar.layout=org.apache.log4j.PatternLayout -log4j.appender.malhar.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n -#log4j.appender.malhar.File=/tmp/app.log +log4j.appender.apex=org.apache.log4j.ConsoleAppender +log4j.appender.apex.layout=org.apache.log4j.PatternLayout +log4j.appender.apex.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n -# to enable, add SYSLOG to rootLogger -log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender -log4j.appender.SYSLOG.syslogHost=127.0.0.1 -log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout -log4j.appender.SYSLOG.layout.conversionPattern=${dt.cid} %-5p [%t] %c{2} %x - %m%n -log4j.appender.SYSLOG.Facility=LOCAL1 - -#log4j.logger.org=info -#log4j.logger.org.apache.commons.beanutils=warn -log4j.logger.com.datatorrent=info -log4j.logger.org.apache.apex=info +log4j.logger.com.datatorrent=info, apex +log4j.additivity.com.datatorrent=false +log4j.logger.org.apache.apex=info, apex +log4j.additivity.org.apache.apex=false # suppress Journal warnings in unit test log4j.logger.com.datatorrent.stram.Journal=error ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Cleanup unit tests log4j.properties > ----------------------------------- > > Key: APEXCORE-785 > URL: https://issues.apache.org/jira/browse/APEXCORE-785 > Project: Apache Apex Core > Issue Type: Improvement > Reporter: Vlad Rozov > Assignee: Vlad Rozov > Priority: Minor > -- This message was sent by Atlassian JIRA (v6.4.14#64029)