Class ConfigurationFactory

  • Direct Known Subclasses:
    JsonConfigurationFactory, PropertiesConfigurationFactory, XmlConfigurationFactory, YamlConfigurationFactory

    public abstract class ConfigurationFactory
    extends ConfigurationBuilderFactory
    Factory class for parsed Configuration objects from a configuration file. ConfigurationFactory allows the configuration implementation to be dynamically chosen in 1 of 3 ways:
    1. A system property named "log4j.configurationFactory" can be set with the name of the ConfigurationFactory to be used.
    2. setConfigurationFactory(ConfigurationFactory) can be called with the instance of the ConfigurationFactory to be used. This must be called before any other calls to Log4j.
    3. A ConfigurationFactory implementation can be added to the classpath and configured as a plugin in the ConfigurationFactory category. The Order annotation should be used to configure the factory to be the first one inspected. See XmlConfigurationFactory for an example.
    If the ConfigurationFactory that was added returns null on a call to getConfiguration then any other ConfigurationFactories found as plugins will be called in their respective order. DefaultConfiguration is always called last if no configuration has been returned.
    • Constructor Detail

      • ConfigurationFactory

        public ConfigurationFactory()
    • Method Detail

      • getInstance

        public static ConfigurationFactory getInstance()
        Returns the ConfigurationFactory.
        Returns:
        the ConfigurationFactory.
      • setConfigurationFactory

        public static void setConfigurationFactory​(ConfigurationFactory factory)
        Sets the configuration factory. This method is not intended for general use and may not be thread safe.
        Parameters:
        factory - the ConfigurationFactory.
      • resetConfigurationFactory

        public static void resetConfigurationFactory()
        Resets the ConfigurationFactory to the default. This method is not intended for general use and may not be thread safe.
      • removeConfigurationFactory

        public static void removeConfigurationFactory​(ConfigurationFactory factory)
        Removes the ConfigurationFactory. This method is not intended for general use and may not be thread safe.
        Parameters:
        factory - The factory to remove.
      • getSupportedTypes

        protected abstract String[] getSupportedTypes()
      • getTestPrefix

        protected String getTestPrefix()
      • getDefaultPrefix

        protected String getDefaultPrefix()
      • getVersion

        protected String getVersion()
      • isActive

        protected boolean isActive()
      • getConfiguration

        public Configuration getConfiguration​(LoggerContext loggerContext,
                                              String name,
                                              URI configLocation)
        Returns the Configuration.
        Parameters:
        loggerContext - The logger context
        name - The configuration name.
        configLocation - The configuration location.
        Returns:
        The Configuration.
      • getConfiguration

        public Configuration getConfiguration​(LoggerContext loggerContext,
                                              String name,
                                              URI configLocation,
                                              ClassLoader loader)
        Returns the Configuration obtained using a given ClassLoader.
        Parameters:
        loggerContext - The logger context
        name - The configuration name.
        configLocation - A URI representing the location of the configuration.
        loader - The default ClassLoader to use. If this is null, then the default ClassLoader will be used.
        Returns:
        The Configuration.
      • getInputFromString

        @Deprecated
        protected ConfigurationSource getInputFromString​(String config,
                                                         ClassLoader loader)
        Deprecated.
        Loads the configuration from the location represented by the String.
        Parameters:
        config - The configuration location.
        loader - The default ClassLoader to use.
        Returns:
        The InputSource to use to read the configuration.