private boolean hasLoggerFilter(final Configuration config) { for (LoggerConfig loggerConfig : config.getLoggers().values()) { boolean isRoot = loggerConfig.getName().equals(""); boolean isGemFire = loggerConfig.getName().startsWith(GEODE_LOGGER_PREFIX); boolean hasFilter = loggerConfig.hasFilter(); boolean isGemFireVerboseFilter = hasFilter && (GEODE_VERBOSE_FILTER.equals(loggerConfig.getFilter().toString()) || GEMFIRE_VERBOSE_FILTER.equals(loggerConfig.getFilter().toString())); if (isRoot || isGemFire) { // check for Logger Filter if (hasFilter && !isGemFireVerboseFilter) { return true; } } } return false; }
@Override public void evaluate() throws Throwable { final CompositeConfiguration config = (CompositeConfiguration) lcr.getConfiguration(); Map<String, Appender> appendersMap = config.getLogger("cat1").getAppenders(); assertEquals("Expected 2 Appender references for cat1 but got " + appendersMap.size(), 2, appendersMap.size()); assertTrue(appendersMap.get("STDOUT") instanceof ConsoleAppender); Filter loggerFilter = config.getLogger("cat1").getFilter(); assertTrue(loggerFilter instanceof RegexFilter); assertEquals(loggerFilter.getOnMatch(), Filter.Result.DENY); appendersMap = config.getLogger("cat2").getAppenders(); assertEquals("Expected 1 Appender reference for cat2 but got " + appendersMap.size(), 1, appendersMap.size()); assertTrue(appendersMap.get("File") instanceof FileAppender); appendersMap = config.getLogger("cat3").getAppenders(); assertEquals("Expected 1 Appender reference for cat3 but got " + appendersMap.size(), 1, appendersMap.size()); assertTrue(appendersMap.get("File") instanceof FileAppender); appendersMap = config.getRootLogger().getAppenders(); assertEquals("Expected 2 Appender references for the root logger but got " + appendersMap.size(), 2, appendersMap.size()); assertTrue(appendersMap.get("File") instanceof FileAppender); assertTrue(appendersMap.get("STDOUT") instanceof ConsoleAppender); } };
@Test public void testBadFilterParam() throws Exception { ctx = Configurator.initialize("Test1", "bad/log4j-badfilterparam.xml"); LogManager.getLogger("org.apache.test.TestConfigurator"); final Configuration config = ctx.getConfiguration(); assertNotNull("No configuration", config); assertEquals("Unexpected Configuration", "XMLConfigTest", config.getName()); final LoggerConfig lcfg = config.getLoggerConfig("org.apache.logging.log4j.test1"); assertNotNull("No Logger", lcfg); final Filter filter = lcfg.getFilter(); assertNull("Unexpected Filter", filter); }
@Test public void testNoFilters() throws Exception { ctx = Configurator.initialize("Test1", "bad/log4j-nofilter.xml"); LogManager.getLogger("org.apache.test.TestConfigurator"); final Configuration config = ctx.getConfiguration(); assertNotNull("No configuration", config); assertEquals("Unexpected Configuration", "XMLConfigTest", config.getName()); final LoggerConfig lcfg = config.getLoggerConfig("org.apache.logging.log4j.test1"); assertNotNull("No Logger", lcfg); final Filter filter = lcfg.getFilter(); assertNotNull("No Filter", filter); assertThat(filter, instanceOf(CompositeFilter.class)); assertTrue("Unexpected filters", ((CompositeFilter) filter).isEmpty()); }
@Override public String getFilter() { return String.valueOf(loggerConfig.getFilter()); }
/** * This method is not exposed through the public API and is used primarily for unit testing. * * @return The number of Filters associated with the Logger. */ public int filterCount() { final Filter filter = privateConfig.loggerConfig.getFilter(); if (filter == null) { return 0; } else if (filter instanceof CompositeFilter) { return ((CompositeFilter) filter).size(); } return 1; }
/** * This method is not exposed through the public API and is used primarily for unit testing. * * @return An Iterator over all the Filters associated with the Logger. */ // FIXME: this really ought to be an Iterable instead of an Iterator public Iterator<Filter> getFilters() { final Filter filter = privateConfig.loggerConfig.getFilter(); if (filter == null) { return new ArrayList<Filter>().iterator(); } else if (filter instanceof CompositeFilter) { return ((CompositeFilter) filter).iterator(); } else { final List<Filter> filters = new ArrayList<>(); filters.add(filter); return filters.iterator(); } }
public static boolean hasLoggerFilter(final Configuration config) { for (LoggerConfig loggerConfig : config.getLoggers().values()) { boolean isRoot = loggerConfig.getName().equals(""); boolean isGemFire = loggerConfig.getName().startsWith(LogService.BASE_LOGGER_NAME); boolean hasFilter = loggerConfig.hasFilter(); boolean isGemFireVerboseFilter = hasFilter && LogService.GEMFIRE_VERBOSE_FILTER.equals(loggerConfig.getFilter().toString()); if (isRoot || isGemFire) { // check for Logger Filter if (hasFilter && !isGemFireVerboseFilter) { return true; } } } return false; }
public static boolean hasAppenderRefFilter(final Configuration config) { for (LoggerConfig loggerConfig : config.getLoggers().values()) { boolean isRoot = loggerConfig.getName().equals(""); boolean isGemFire = loggerConfig.getName().startsWith(LogService.BASE_LOGGER_NAME); boolean hasFilter = loggerConfig.hasFilter(); boolean isGemFireVerboseFilter = hasFilter && LogService.GEMFIRE_VERBOSE_FILTER.equals(loggerConfig.getFilter().toString()); if (isRoot || isGemFire) { // check for AppenderRef Filter for (AppenderRef appenderRef : loggerConfig.getAppenderRefs()) { if (appenderRef.getFilter() != null) { return true; } } } } return false; } }