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

org.slf4j.impl.SolonMDCAdapter Maven / Gradle / Ivy

There is a newer version: 2.0.0-M1
Show newest version
package org.slf4j.impl;

import org.slf4j.spi.MDCAdapter;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * @author noear 2021/2/26 created
 */
public class SolonMDCAdapter implements MDCAdapter {

    private static final ThreadLocal> threadMap = new InheritableThreadLocal<>();

    @Override
    public void put(String key, String val) {
        Map ht = threadMap.get();
        if (ht == null) {
            ht = new LinkedHashMap<>();
            threadMap.set(ht);
        }

        ht.put(key, val);
    }

    @Override
    public String get(String key) {
        Map ht = threadMap.get();
        if (ht != null) {
            return ht.get(key);
        } else {
            return null;
        }
    }

    @Override
    public void remove(String key) {
        Map ht = threadMap.get();
        if (ht != null) {
            ht.remove(key);
        }
    }

    @Override
    public void clear() {
        threadMap.set(null);
    }

    @Override
    public Map getCopyOfContextMap() {
        Map map = threadMap.get();
        if (map != null) {
            return new LinkedHashMap<>(map);
        } else {
            return map;
        }
    }

    @Override
    public void setContextMap(Map map) {
        threadMap.set(map);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy