Java 类org.slf4j.spi.LoggerFactoryBinder 实例源码

项目:greenpepper    文件:StaticLoggerBinder.java   
private void init() {

        String originalLogbackConfigFileValue = System.getProperty(ContextInitializer.CONFIG_FILE_PROPERTY);
        System.setProperty(ContextInitializer.CONFIG_FILE_PROPERTY, findURLOfDefaultConfigurationFile());
        System.setProperty(GREENPEPPER_DEBUG_SYSPROP, Boolean.toString(GreenPepper.isDebugEnabled()));

        // Logback initialisation
        try {
            Class<?> loggerBinderClass = Class.forName(LOGGER_BINDER_CLASSNAME);
            Method getSingletonMethod = loggerBinderClass.getMethod("getSingleton");
            internalLoggerBinder = (LoggerFactoryBinder) getSingletonMethod.invoke(null);
        } catch (Exception e) {
            System.err.print("Unable to instanciate the LoggerFactoryBinder: " + e.getMessage());
            throw new IllegalStateException("Wrong configuration of greenpepper logger.", e);
        }

        if (StringUtils.isNotBlank(originalLogbackConfigFileValue)) {
            System.setProperty(ContextInitializer.CONFIG_FILE_PROPERTY, originalLogbackConfigFileValue);
        } else {
            System.clearProperty(ContextInitializer.CONFIG_FILE_PROPERTY);
        }
        System.clearProperty(GREENPEPPER_DEBUG_SYSPROP);
    }