public void put(String key, String val) {
        if (key == null) {
            throw new IllegalArgumentException("key cannot be null");
        }
        Map<String, String> map = inheritableThreadLocalMap.get();
        if (map == null) {
            map = new HashMap<>();
            inheritableThreadLocalMap.set(map);
        }
        map.put(key, val);
    }
Put a context value (the <code>val</code> parameter) as identified with
the <code>key</code> parameter into the current thread's context map.
Note that contrary to log4j, the <code>val</code> parameter can be null.

<p>
If the current thread does not have a context map it is created as a side
effect of this call.

@throws IllegalArgumentException
                in case the "key" parameter is null
slf4j-api/src/main/java/org/slf4j/helpers/BasicMDCAdapter.java