@Test public void newConsoleAppender() { LoggerContext ctx = underTest.getRootContext(); ConsoleAppender<?> appender = underTest.newConsoleAppender(ctx, "MY_APPENDER", "%msg%n"); assertThat(appender.getName()).isEqualTo("MY_APPENDER"); assertThat(appender.getContext()).isSameAs(ctx); assertThat(appender.isStarted()).isTrue(); assertThat(((PatternLayoutEncoder) appender.getEncoder()).getPattern()).isEqualTo("%msg%n"); assertThat(appender.getCopyOfAttachedFiltersList()).isEmpty(); }
private Map<String, Appender<ILoggingEvent>> createConsoleAppenders(final LoggerContext context, final LogbackModule module) { Map<String, Appender<ILoggingEvent>> appendersMap = new HashMap<>(); for (ConsoleAppenderTO appender : module.getConsoleAppenderTO()) { Preconditions.checkState(appendersMap.containsKey(appender.getName()) == false, "Duplicate appender name %s", appender.getName()); ch.qos.logback.core.ConsoleAppender<ILoggingEvent> app = new ch.qos.logback.core.ConsoleAppender<>(); app.setContext(context); PatternLayoutEncoder encoder = new PatternLayoutEncoder(); encoder.setContext(context); encoder.setPattern(appender.getEncoderPattern()); encoder.start(); app.setEncoder(encoder); ThresholdFilter filter = new ThresholdFilter(); filter.setContext(context); filter.setLevel(appender.getThresholdFilter()); filter.start(); app.getCopyOfAttachedFiltersList().add(filter); app.setName(appender.getName()); app.start(); appendersMap.put(app.getName(), app); } return appendersMap; }
appender.start(); config.addAppender(appender); AppenderRef[] refs = new AppenderRef[] { AppenderRef.createAppenderRef(appender.getName(), null, null) }; LoggerConfig loggerConfig = LoggerConfig.createLogger("false", Level.ALL, LogManager.ROOT_LOGGER_NAME, "true", refs, null, config, null); loggerConfig.addAppender(appender, null, null);
PatternLayoutEncoder encoder = (PatternLayoutEncoder) consoleApp.getEncoder(); app.setEncoderPattern(encoder.getPattern()); app.setName(consoleApp.getName()); app.setThresholdFilter(context.getLogger(Logger.ROOT_LOGGER_NAME).getEffectiveLevel().levelStr); this.consoleDTOs.put(consoleApp.getName(), app);