static Set<URL> findPossibleStaticLoggerBinderPathSet() {
        // use Set instead of list in order to deal with bug #138
        // LinkedHashSet appropriate here because it preserves insertion order
        // during iteration
        Set<URL> staticLoggerBinderPathSet = new LinkedHashSet<>();
        try {
            ClassLoader loggerFactoryClassLoader = LoggerFactory.class.getClassLoader();
            Enumeration<URL> paths;
            if (loggerFactoryClassLoader == null) {
                paths = ClassLoader.getSystemResources(STATIC_LOGGER_BINDER_PATH);
            } else {
                paths = loggerFactoryClassLoader.getResources(STATIC_LOGGER_BINDER_PATH);
            }
            while (paths.hasMoreElements()) {
                URL path = paths.nextElement();
                staticLoggerBinderPathSet.add(path);
            }
        } catch (IOException ioe) {
            Reporter.error("Error getting resources from path", ioe);
        }
        return staticLoggerBinderPathSet;
    }
The value of PROVIDER.getMDCAdapter() can be null while PROVIDER has not yet initialized.

However, SLF4JServiceProvider implementations are expected to initialize their internal
MDCAdapter field in their constructor or on field declaration.
slf4j-api/src/main/java/org/slf4j/LoggerFactory.java