@Override public List<Filter<E>> getCopyOfAttachedFiltersList() { return delegate.getCopyOfAttachedFiltersList(); }
@Override public List<Filter<E>> getCopyOfAttachedFiltersList() { return delegate.getCopyOfAttachedFiltersList(); }
@Override public void setAppenderThreshold(String appenderName, Level threshold) throws AppenderThresholdNotSupported { for (Map.Entry<String, Appender> entry : getAllAppenders().entrySet()) { if (entry.getKey().equals(appenderName)) { Appender appender = entry.getValue(); for (Object filter : appender.getCopyOfAttachedFiltersList()) { if (filter instanceof ThresholdFilter) { ((ThresholdFilter) filter).setLevel(threshold.levelStr); return; } } } } throw new AppenderThresholdNotSupported(appenderName); }
@Override public Level getAppenderThreshold(String appenderName) throws AppenderThresholdNotSupported { for (Map.Entry<String, Appender> entry : getAllAppenders().entrySet()) { if (entry.getKey().equals(appenderName)) { Appender appender = entry.getValue(); for (Object filter : appender.getCopyOfAttachedFiltersList()) { if (filter instanceof ThresholdFilter) { try { Field field = filter.getClass().getDeclaredField("level"); field.setAccessible(true); return (Level) field.get(filter); } catch (NoSuchFieldException | IllegalAccessException e) { log.error("Error getting appender " + appenderName + " level", e); throw new AppenderThresholdNotSupported(appenderName); } } } } } throw new AppenderThresholdNotSupported(appenderName); }
public void finished() { if (thFilter==null) { // then we did not add it return; } List<Filter<ILoggingEvent>> filterList = appender.getCopyOfAttachedFiltersList(); appender.clearAllFilters(); for (Iterator<Filter<ILoggingEvent>> it = filterList.iterator(); it.hasNext();) { Filter<ILoggingEvent> filter = it.next(); if (filter!=thFilter) { appender.addFilter(filter); } } } }
@Test public void testAbstractAndConsoleMultipleFilters() { BaleenConsoleLoggerBuilder builder = new BaleenConsoleLoggerBuilder( NAME, BaleenLogging.DEFAULT_PATTERN, Arrays.asList( new MinMaxFilter(Level.INFO, Level.ERROR), new MinMaxFilter(Level.INFO, Level.WARN))); LoggerContext context = new LoggerContext(); Encoder<ILoggingEvent> encoder = new PatternLayoutEncoder(); Appender<ILoggingEvent> appender = builder.build(context, encoder); assertEquals(NAME, builder.getName()); assertTrue(appender instanceof ConsoleAppender); assertEquals(encoder, ((ConsoleAppender<ILoggingEvent>) appender).getEncoder()); assertNotNull(appender); assertEquals(NAME, appender.getName()); assertEquals(2, appender.getCopyOfAttachedFiltersList().size()); Filter<ILoggingEvent> filter = appender.getCopyOfAttachedFiltersList().get(0); assertTrue(filter instanceof MinMaxFilter); assertEquals(Level.INFO, ((MinMaxFilter) filter).getMin()); assertEquals(Level.ERROR, ((MinMaxFilter) filter).getMax()); filter = appender.getCopyOfAttachedFiltersList().get(1); assertTrue(filter instanceof MinMaxFilter); assertEquals(Level.INFO, ((MinMaxFilter) filter).getMin()); assertEquals(Level.WARN, ((MinMaxFilter) filter).getMax()); // TODO: Test that both filters are being applied }
/** Test abstract functions (using console implementation) and the functions of console */ @Test public void testAbstractAndConsole() { BaleenConsoleLoggerBuilder builder = new BaleenConsoleLoggerBuilder( NAME, BaleenLogging.DEFAULT_PATTERN, new MinMaxFilter(Level.INFO, Level.WARN)); LoggerContext context = new LoggerContext(); Encoder<ILoggingEvent> encoder = new PatternLayoutEncoder(); Appender<ILoggingEvent> appender = builder.build(context, encoder); assertEquals(NAME, builder.getName()); assertTrue(appender instanceof ConsoleAppender); assertEquals(encoder, ((ConsoleAppender<ILoggingEvent>) appender).getEncoder()); assertNotNull(appender); assertEquals(NAME, appender.getName()); Filter<ILoggingEvent> filter = appender.getCopyOfAttachedFiltersList().get(0); assertTrue(filter instanceof MinMaxFilter); assertEquals(Level.INFO, ((MinMaxFilter) filter).getMin()); assertEquals(Level.WARN, ((MinMaxFilter) filter).getMax()); }