PrefixPluginLogger.java 1.6 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
package org.wltea.analyzer.help;

import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.Marker;
import org.apache.logging.log4j.MarkerManager;
import org.apache.logging.log4j.message.Message;
import org.apache.logging.log4j.message.MessageFactory;
import org.apache.logging.log4j.spi.ExtendedLogger;
import org.apache.logging.log4j.spi.ExtendedLoggerWrapper;

import java.util.WeakHashMap;

public class PrefixPluginLogger extends ExtendedLoggerWrapper {
    private static final WeakHashMap<String, Marker> markers = new WeakHashMap();
    private final Marker marker;

    static int markersSize() {
        return markers.size();
    }

    public String prefix() {
        return this.marker.getName();
    }

    PrefixPluginLogger(ExtendedLogger logger, String name, String prefix) {
        super(logger, name, (MessageFactory) null);
        String actualPrefix = prefix == null ? "" : prefix;
        WeakHashMap var6 = markers;
        MarkerManager.Log4jMarker actualMarker;
        synchronized (markers) {
            MarkerManager.Log4jMarker maybeMarker = (MarkerManager.Log4jMarker) markers.get(actualPrefix);
            if (maybeMarker == null) {
                actualMarker = new MarkerManager.Log4jMarker(actualPrefix);
                markers.put(new String(actualPrefix), actualMarker);
            } else {
                actualMarker = maybeMarker;
            }
        }

        this.marker = (Marker) actualMarker;
    }

    public void logMessage(String fqcn, Level level, Marker marker, Message message, Throwable t) {
        assert marker == null;

        super.logMessage(fqcn, level, this.marker, message, t);
    }
}