package core.framework.impl.search.log; import core.framework.api.util.Maps; import core.framework.impl.log.LoggerImpl; import org.apache.logging.log4j.message.MessageFactory; import org.apache.logging.log4j.spi.ExtendedLogger; import org.apache.logging.log4j.spi.LoggerContext; import org.slf4j.LoggerFactory; import java.util.Map; class ESLoggerContext implements LoggerContext { private final Map<String, ESLogger> loggers = Maps.newConcurrentHashMap(); @Override public Object getExternalContext() { return null; } @Override public ExtendedLogger getLogger(String name) { return getLogger(name, null); } @Override public ExtendedLogger getLogger(String name, MessageFactory messageFactory) { return loggers.computeIfAbsent(name, key -> new ESLogger(key, messageFactory, (LoggerImpl) LoggerFactory.getLogger(key))); } @Override public boolean hasLogger(String name) { return loggers.containsKey(name); } @Override public boolean hasLogger(String name, MessageFactory messageFactory) { return hasLogger(name); } @Override public boolean hasLogger(String name, Class<? extends MessageFactory> messageFactoryClass) { return hasLogger(name); } }