Class ConfigurationFactory
- java.lang.Object
-
- org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory
-
- org.apache.logging.log4j.core.config.ConfigurationFactory
-
- Direct Known Subclasses:
JsonConfigurationFactory,Log4j1ConfigurationFactory,PropertiesConfigurationFactory,XmlConfigurationFactory,YamlConfigurationFactory
public abstract class ConfigurationFactory extends ConfigurationBuilderFactory
Factory class for parsedConfigurationobjects from a configuration file. ConfigurationFactory allows the configuration implementation to be dynamically chosen in 1 of 3 ways:- A system property named "log4j.configurationFactory" can be set with the name of the ConfigurationFactory to be used.
- setConfigurationFactory(ConfigurationFactory) can be called with the instance of the ConfigurationFactory to be used. This must be called before any other calls to Log4j.
-
A ConfigurationFactory implementation can be added to the classpath and configured as a plugin in the
ConfigurationFactorycategory. TheOrderannotation should be used to configure the factory to be the first one inspected. See XmlConfigurationFactory for an example.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringCATEGORYPlugin category used to inject a ConfigurationFactoryPluginclass.static java.lang.StringCONFIGURATION_FACTORY_PROPERTYAllows the ConfigurationFactory class to be specified as a system property.static java.lang.StringCONFIGURATION_FILE_PROPERTYAllows the location of the configuration file to be specified as a system property.protected static java.lang.StringDEFAULT_PREFIXFile name prefix for standard configurations.protected static LoggerLOGGERAllows subclasses access to the status logger without creating another instance.protected StrSubstitutorsubstitutorprotected static java.lang.StringTEST_PREFIXFile name prefix for test configurations.
-
Constructor Summary
Constructors Constructor Description ConfigurationFactory()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description ConfigurationgetConfiguration(LoggerContext loggerContext, java.lang.String name, java.net.URI configLocation)Returns the Configuration.ConfigurationgetConfiguration(LoggerContext loggerContext, java.lang.String name, java.net.URI configLocation, java.lang.ClassLoader loader)Returns the Configuration obtained using a given ClassLoader.abstract ConfigurationgetConfiguration(LoggerContext loggerContext, ConfigurationSource source)protected ConfigurationSourcegetInputFromString(java.lang.String config, java.lang.ClassLoader loader)Loads the configuration from the location represented by the String.static ConfigurationFactorygetInstance()Returns the ConfigurationFactory.protected abstract java.lang.String[]getSupportedTypes()protected booleanisActive()static voidremoveConfigurationFactory(ConfigurationFactory factory)Removes the ConfigurationFactory.static voidresetConfigurationFactory()Resets the ConfigurationFactory to the default.static voidsetConfigurationFactory(ConfigurationFactory factory)Sets the configuration factory.-
Methods inherited from class org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory
newConfigurationBuilder, newConfigurationBuilder
-
-
-
-
Field Detail
-
CONFIGURATION_FACTORY_PROPERTY
public static final java.lang.String CONFIGURATION_FACTORY_PROPERTY
Allows the ConfigurationFactory class to be specified as a system property.- See Also:
- Constant Field Values
-
CONFIGURATION_FILE_PROPERTY
public static final java.lang.String CONFIGURATION_FILE_PROPERTY
Allows the location of the configuration file to be specified as a system property.- See Also:
- Constant Field Values
-
CATEGORY
public static final java.lang.String CATEGORY
Plugin category used to inject a ConfigurationFactoryPluginclass.- Since:
- 2.1
- See Also:
- Constant Field Values
-
LOGGER
protected static final Logger LOGGER
Allows subclasses access to the status logger without creating another instance.
-
TEST_PREFIX
protected static final java.lang.String TEST_PREFIX
File name prefix for test configurations.- See Also:
- Constant Field Values
-
DEFAULT_PREFIX
protected static final java.lang.String DEFAULT_PREFIX
File name prefix for standard configurations.- See Also:
- Constant Field Values
-
substitutor
protected final StrSubstitutor substitutor
-
-
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 java.lang.String[] getSupportedTypes()
-
isActive
protected boolean isActive()
-
getConfiguration
public abstract Configuration getConfiguration(LoggerContext loggerContext, ConfigurationSource source)
-
getConfiguration
public Configuration getConfiguration(LoggerContext loggerContext, java.lang.String name, java.net.URI configLocation)
Returns the Configuration.- Parameters:
loggerContext- The logger contextname- The configuration name.configLocation- The configuration location.- Returns:
- The Configuration.
-
getConfiguration
public Configuration getConfiguration(LoggerContext loggerContext, java.lang.String name, java.net.URI configLocation, java.lang.ClassLoader loader)
Returns the Configuration obtained using a given ClassLoader.- Parameters:
loggerContext- The logger contextname- The configuration name.configLocation- A URI representing the location of the configuration.loader- The default ClassLoader to use. If this isnull, then the default ClassLoader will be used.- Returns:
- The Configuration.
-
getInputFromString
protected ConfigurationSource getInputFromString(java.lang.String config, java.lang.ClassLoader loader)
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.
-
-