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
,PropertiesConfigurationFactory
,XmlConfigurationFactory
,XmlConfigurationFactory
public abstract class ConfigurationFactory extends ConfigurationBuilderFactory
Factory class for parsedConfiguration
objects 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
ConfigurationFactory
category. TheOrder
annotation 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 String
AUTHORIZATION_PROVIDER
static String
CATEGORY
Plugin category used to inject a ConfigurationFactoryPlugin
class.static String
CONFIGURATION_FACTORY_PROPERTY
Allows the ConfigurationFactory class to be specified as a system property.static String
CONFIGURATION_FILE_PROPERTY
Allows the location of the configuration file to be specified as a system property.protected static String
DEFAULT_PREFIX
File name prefix for standard configurations.static String
LOG4J1_CONFIGURATION_FILE_PROPERTY
static String
LOG4J1_EXPERIMENTAL
protected static String
LOG4J1_VERSION
protected static String
LOG4J2_VERSION
protected static Logger
LOGGER
Allows subclasses access to the status logger without creating another instance.protected StrSubstitutor
substitutor
protected static String
TEST_PREFIX
File 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 static AuthorizationProvider
authorizationProvider(PropertiesUtil props)
static AuthorizationProvider
getAuthorizationProvider()
Configuration
getConfiguration(LoggerContext loggerContext, String name, URI configLocation)
Returns the Configuration.Configuration
getConfiguration(LoggerContext loggerContext, String name, URI configLocation, ClassLoader loader)
Returns the Configuration obtained using a given ClassLoader.abstract Configuration
getConfiguration(LoggerContext loggerContext, ConfigurationSource source)
protected String
getDefaultPrefix()
protected ConfigurationSource
getInputFromString(String config, ClassLoader loader)
Loads the configuration from the location represented by the String.static ConfigurationFactory
getInstance()
Returns the ConfigurationFactory.protected abstract String[]
getSupportedTypes()
protected String
getTestPrefix()
protected String
getVersion()
protected boolean
isActive()
static void
removeConfigurationFactory(ConfigurationFactory factory)
Removes the ConfigurationFactory.static void
resetConfigurationFactory()
Resets the ConfigurationFactory to the default.static void
setConfigurationFactory(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 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 String CONFIGURATION_FILE_PROPERTY
Allows the location of the configuration file to be specified as a system property.- See Also:
- Constant Field Values
-
LOG4J1_CONFIGURATION_FILE_PROPERTY
public static final String LOG4J1_CONFIGURATION_FILE_PROPERTY
- See Also:
- Constant Field Values
-
LOG4J1_EXPERIMENTAL
public static final String LOG4J1_EXPERIMENTAL
- See Also:
- Constant Field Values
-
AUTHORIZATION_PROVIDER
public static final String AUTHORIZATION_PROVIDER
- See Also:
- Constant Field Values
-
CATEGORY
public static final String CATEGORY
Plugin category used to inject a ConfigurationFactoryPlugin
class.- 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 String TEST_PREFIX
File name prefix for test configurations.- See Also:
- Constant Field Values
-
DEFAULT_PREFIX
protected static final String DEFAULT_PREFIX
File name prefix for standard configurations.- See Also:
- Constant Field Values
-
LOG4J1_VERSION
protected static final String LOG4J1_VERSION
- See Also:
- Constant Field Values
-
LOG4J2_VERSION
protected static final String LOG4J2_VERSION
- See Also:
- Constant Field Values
-
substitutor
protected final StrSubstitutor substitutor
-
-
Method Detail
-
getInstance
public static ConfigurationFactory getInstance()
Returns the ConfigurationFactory.- Returns:
- the ConfigurationFactory.
-
authorizationProvider
public static AuthorizationProvider authorizationProvider(PropertiesUtil props)
-
getAuthorizationProvider
public static AuthorizationProvider getAuthorizationProvider()
-
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 abstract Configuration getConfiguration(LoggerContext loggerContext, ConfigurationSource source)
-
getConfiguration
public Configuration getConfiguration(LoggerContext loggerContext, String name, 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, String name, URI configLocation, 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(String config, 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.
-
-