All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.swisspush.gateleen.logging.DefaultLogAppenderRepository Maven / Gradle / Ivy

There is a newer version: 2.1.15
Show newest version
package org.swisspush.gateleen.logging;

import io.vertx.core.Handler;
import io.vertx.core.Vertx;
import io.vertx.core.eventbus.Message;
import org.apache.logging.log4j.core.Appender;

import java.util.HashMap;
import java.util.Map;

import static org.swisspush.gateleen.logging.LoggingResourceManager.UPDATE_ADDRESS;

/**
 * Default implementation of the {@link LogAppenderRepository} caching the {@link Appender} instances in a {@link Map}
 *
 * @author https://github.com/mcweba [Marc-Andre Weber]
 */
public class DefaultLogAppenderRepository implements LogAppenderRepository {

    private Map appenderMap = new HashMap<>();

    public DefaultLogAppenderRepository(Vertx vertx) {
        vertx.eventBus().consumer(UPDATE_ADDRESS, (Handler>) event -> clearRepository());
    }

    @Override
    public boolean hasAppender(String name) {
        return appenderMap.containsKey(name);
    }

    @Override
    public void addAppender(String name, Appender appender) {
        appenderMap.put(name, appender);
    }

    @Override
    public Appender getAppender(String name) {
        return appenderMap.get(name);
    }

    @Override
    public void clearRepository() {
        appenderMap.clear();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy