/** * @param source logback,log4j2,log4j,temp,nop */ public Log4j2LoggerSpaceFactory(SpaceId spaceId, Properties properties, URL confFile, String source) throws Throwable { super(source); this.spaceId = spaceId; this.properties = properties; this.confFile = confFile; boolean willReinitialize = false; Iterator<ReInitializeChecker> checkers = ServiceLoader.load(ReInitializeChecker.class, this.getClass().getClassLoader()).iterator(); while (checkers.hasNext()) { willReinitialize = !checkers.next().isReInitialize(); } this.loggerContext = initialize(willReinitialize); Iterator<Log4j2FilterGenerator> matchers = ServiceLoader.load(Log4j2FilterGenerator.class, this.getClass().getClassLoader()).iterator(); while (matchers.hasNext() & willReinitialize) { Log4j2FilterGenerator matcher = matchers.next(); for (Filter filter : matcher.generatorFilters()) { this.loggerContext.addFilter(filter); } } }
if (isConsoleAppenderOpen(spaceId.getSpaceName(), properties)) { final ConsoleAppender consoleAppender = consoleAppender(properties); loggerContext.addFilter(new AbstractFilter() { @Override public Result filter(Logger logger, Level level, Marker marker, Message msg,