private static List<AppenderInfo> doGetLoggerAppenders(Iterator<Appender<ILoggingEvent>> appenders) { List<AppenderInfo> result = new ArrayList<AppenderInfo>(); while (appenders.hasNext()) { AppenderInfo info = new AppenderInfo(); Appender<ILoggingEvent> appender = appenders.next(); info.setName(appender.getName()); info.setType(appender.getClass().getName()); if (appender instanceof FileAppender) { info.setFile(((FileAppender)appender).getFile()); } else if (appender instanceof AsyncAppender) { AsyncAppender aa = (AsyncAppender)appender; Iterator<Appender<ILoggingEvent>> iter = aa.iteratorForAppenders(); List<AppenderInfo> asyncs = doGetLoggerAppenders(iter); // 标明异步appender List<String> nestedNames = new ArrayList<String>(); for (AppenderInfo a : asyncs) { nestedNames.add(a.getName()); result.add(a); } info.withDetail("nestedNames", nestedNames); } else if (appender instanceof ConsoleAppender) { info.withDetail("target", ((ConsoleAppender)appender).getTarget()); } result.add(info); } return result; } }
private void verifyAppConsoleAppender(Appender<ILoggingEvent> appender) { assertThat(appender).isInstanceOf(ConsoleAppender.class); ConsoleAppender<ILoggingEvent> consoleAppender = (ConsoleAppender<ILoggingEvent>) appender; assertThat(consoleAppender.getTarget()).isEqualTo(ConsoleTarget.SystemOut.getName()); verifyAppFormattedLogEncoder(consoleAppender.getEncoder()); }
@Test public void startup_logger_prints_to_only_to_system_out() { LoggerContext ctx = underTest.configure(props); Logger startup = ctx.getLogger("startup"); assertThat(startup.isAdditive()).isFalse(); Appender appender = startup.getAppender("CONSOLE"); assertThat(appender).isInstanceOf(ConsoleAppender.class); ConsoleAppender<ILoggingEvent> consoleAppender = (ConsoleAppender<ILoggingEvent>) appender; assertThat(consoleAppender.getTarget()).isEqualTo("System.out"); assertThat(consoleAppender.getEncoder()).isInstanceOf(PatternLayoutEncoder.class); PatternLayoutEncoder patternEncoder = (PatternLayoutEncoder) consoleAppender.getEncoder(); assertThat(patternEncoder.getPattern()).isEqualTo("%d{yyyy.MM.dd HH:mm:ss} %-5level app[][%logger{20}] %msg%n"); }
@Test public void startup_logger_prints_to_only_to_system_out() { LoggerContext ctx = underTest.configure(props); Logger startup = ctx.getLogger("startup"); assertThat(startup.isAdditive()).isFalse(); Appender appender = startup.getAppender("CONSOLE"); assertThat(appender).isInstanceOf(ConsoleAppender.class); ConsoleAppender<ILoggingEvent> consoleAppender = (ConsoleAppender<ILoggingEvent>) appender; assertThat(consoleAppender.getTarget()).isEqualTo("System.out"); assertThat(consoleAppender.getEncoder()).isInstanceOf(PatternLayoutEncoder.class); PatternLayoutEncoder patternEncoder = (PatternLayoutEncoder) consoleAppender.getEncoder(); assertThat(patternEncoder.getPattern()).isEqualTo("%d{yyyy.MM.dd HH:mm:ss} %-5level app[][%logger{20}] %msg%n"); }
private void verifyGobblerConsoleAppender(Logger logger) { Appender<ILoggingEvent> appender = logger.getAppender("GOBBLER_CONSOLE"); assertThat(appender).isInstanceOf(ConsoleAppender.class); ConsoleAppender<ILoggingEvent> consoleAppender = (ConsoleAppender<ILoggingEvent>) appender; assertThat(consoleAppender.getTarget()).isEqualTo(ConsoleTarget.SystemOut.getName()); verifyFormattedLogEncoder(consoleAppender.getEncoder(), "%msg%n"); }
private static List<AppenderInfo> doGetLoggerAppenders(Iterator<Appender<ILoggingEvent>> appenders) { List<AppenderInfo> result = new ArrayList<AppenderInfo>(); while (appenders.hasNext()) { AppenderInfo info = new AppenderInfo(); Appender<ILoggingEvent> appender = appenders.next(); info.setName(appender.getName()); info.setType(appender.getClass().getName()); if (appender instanceof FileAppender) { info.setFile(((FileAppender) appender).getFile()); } else if (appender instanceof AsyncAppender) { AsyncAppender aa = (AsyncAppender) appender; Iterator<Appender<ILoggingEvent>> iter = aa.iteratorForAppenders(); List<AppenderInfo> asyncs = doGetLoggerAppenders(iter); // 标明异步appender List<String> nestedNames = new ArrayList<String>(); for (AppenderInfo a : asyncs) { nestedNames.add(a.getName()); result.add(a); } info.withDetail("nestedNames", nestedNames); } else if (appender instanceof ConsoleAppender) { info.withDetail("target", ((ConsoleAppender) appender).getTarget()); } result.add(info); } return result; } }
private static List<AppenderInfo> doGetLoggerAppenders(Iterator<Appender<ILoggingEvent>> appenders) { List<AppenderInfo> result = new ArrayList<AppenderInfo>(); while (appenders.hasNext()) { AppenderInfo info = new AppenderInfo(); Appender<ILoggingEvent> appender = appenders.next(); info.setName(appender.getName()); info.setType(appender.getClass().getName()); if (appender instanceof FileAppender) { info.setFile(((FileAppender) appender).getFile()); } else if (appender instanceof AsyncAppender) { AsyncAppender aa = (AsyncAppender) appender; Iterator<Appender<ILoggingEvent>> iter = aa.iteratorForAppenders(); List<AppenderInfo> asyncs = doGetLoggerAppenders(iter); // 标明异步appender List<String> nestedNames = new ArrayList<String>(); for (AppenderInfo a : asyncs) { nestedNames.add(a.getName()); result.add(a); } info.withDetail("nestedNames", nestedNames); } else if (appender instanceof ConsoleAppender) { info.withDetail("target", ((ConsoleAppender) appender).getTarget()); } result.add(info); } return result; } }
private static List<AppenderInfo> doGetLoggerAppenders(Iterator<Appender<ILoggingEvent>> appenders) { List<AppenderInfo> result = new ArrayList<AppenderInfo>(); while (appenders.hasNext()) { AppenderInfo info = new AppenderInfo(); Appender<ILoggingEvent> appender = appenders.next(); info.setName(appender.getName()); info.setType(appender.getClass().getName()); if (appender instanceof FileAppender) { info.setFile(((FileAppender)appender).getFile()); } else if (appender instanceof AsyncAppender) { AsyncAppender aa = (AsyncAppender)appender; Iterator<Appender<ILoggingEvent>> iter = aa.iteratorForAppenders(); List<AppenderInfo> asyncs = doGetLoggerAppenders(iter); // 标明异步appender List<String> nestedNames = new ArrayList<String>(); for (AppenderInfo a : asyncs) { nestedNames.add(a.getName()); result.add(a); } info.withDetail("nestedNames", nestedNames); } else if (appender instanceof ConsoleAppender) { info.withDetail("target", ((ConsoleAppender)appender).getTarget()); } result.add(info); } return result; } }