private static List<AppenderInfo> doGetLoggerAppenders(Enumeration<Appender> appenders) { List<AppenderInfo> result = new ArrayList<AppenderInfo>(); while (appenders.hasMoreElements()) { AppenderInfo info = new AppenderInfo(); Appender appender = appenders.nextElement(); info.setName(appender.getName()); info.setType(appender.getClass().getName()); result.add(info); if (appender instanceof FileAppender) { info.setFile(((FileAppender) appender).getFile()); } else if (appender instanceof ConsoleAppender) { info.withDetail("target", ((ConsoleAppender) appender).getTarget()); } else if (appender instanceof AsyncAppender) { List<AppenderInfo> asyncs = doGetLoggerAppenders(((AsyncAppender) appender).getAllAppenders()); // 标明异步appender List<String> nestedNames = new ArrayList<String>(); for (AppenderInfo a : asyncs) { nestedNames.add(a.getName()); result.add(a); } info.withDetail("nestedNames", nestedNames); } } return result; }
private static List<AppenderInfo> doGetLoggerAppenders(Enumeration<Appender> appenders) { List<AppenderInfo> result = new ArrayList<AppenderInfo>(); while (appenders.hasMoreElements()) { AppenderInfo info = new AppenderInfo(); Appender appender = appenders.nextElement(); info.setName(appender.getName()); info.setType(appender.getClass().getName()); result.add(info); if (appender instanceof FileAppender) { info.setFile(((FileAppender) appender).getFile()); } else if (appender instanceof ConsoleAppender) { info.withDetail("target", ((ConsoleAppender) appender).getTarget()); } else if (appender instanceof AsyncAppender) { List<AppenderInfo> asyncs = doGetLoggerAppenders(((AsyncAppender) appender).getAllAppenders()); // 标明异步appender List<String> nestedNames = new ArrayList<String>(); for (AppenderInfo a : asyncs) { nestedNames.add(a.getName()); result.add(a); } info.withDetail("nestedNames", nestedNames); } } return result; }