[slf4j-dev] LoggerFactory question help

雪松 2011xuesong at gmail.com
Wed Dec 28 13:05:28 CET 2016


question 1: Can somebody tell me  when loggerFactoryClassLoader will be
null?

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<URL>();
    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) {
        Util.report("Error getting resources from path", ioe);
    }
    return staticLoggerBinderPathSet;
}

question 2: ClassLoader.getSystemResources(STATIC_LOGGER_BINDER_PATH)
and loggerFactoryClassLoader.getResources(STATIC_LOGGER_BINDER_PATH) are
the same meaning in jdk.

public static Enumeration<URL> getSystemResources(String name)
    throws IOException
{
    ClassLoader system = getSystemClassLoader();
    if (system == null) {
        return getBootstrapResources(name);
    }
    return system.getResources(name);
}


public Enumeration<URL> getResources(String name) throws IOException {
    Enumeration[] tmp = new Enumeration[2];
    if (parent != null) {
        tmp[0] = parent.getResources(name);
    } else {
        tmp[0] = getBootstrapResources(name);
    }
    tmp[1] = findResources(name);

    return new CompoundEnumeration<>(tmp);
}

thank for help.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.qos.ch/pipermail/slf4j-dev/attachments/20161228/083e5bf6/attachment.html>


More information about the slf4j-dev mailing list