Package org.apache.logging.log4j.util
Class ProviderUtil
- java.lang.Object
-
- org.apache.logging.log4j.util.ProviderUtil
-
@InternalApi public final class ProviderUtil extends java.lang.Object
Consider this class private.Utility class for Log4j
Providers. When integrating with an application container framework, any Log4j Providers not accessible through standard classpath scanning shouldloadProvider(java.net.URL, ClassLoader)a classpath accordingly.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String[]COMPATIBLE_API_VERSIONSprivate static LoggerLOGGERprivate static ProviderPROVIDER(package private) static java.lang.StringPROVIDER_RESOURCEResource name for a Log4j 2 provider properties file.(package private) static java.util.Collection<Provider>PROVIDERSLoaded providers.(package private) static java.util.concurrent.locks.LockSTARTUP_LOCKGuards the ProviderUtil singleton instance from lazy initialization.
-
Constructor Summary
Constructors Modifier Constructor Description privateProviderUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description (package private) static voidaddProvider(Provider provider)static java.lang.ClassLoaderfindClassLoader()static ProvidergetProvider()static java.lang.Iterable<Provider>getProviders()static booleanhasProviders()(package private) static voidlazyInit()Lazily initializes the ProviderUtil singleton.(package private) static voidloadProvider(java.net.URL url, java.lang.ClassLoader cl)Loads an individual Provider implementation.(package private) static voidloadProviders(java.util.Enumeration<java.net.URL> urls, java.lang.ClassLoader cl)Deprecated.UseloadProvider(java.net.URL, ClassLoader)instead.(package private) static ProviderselectProvider(PropertiesUtil properties, java.util.Collection<Provider> providers, Logger statusLogger)Used to test the publicgetProvider()method.private static booleanvalidVersion(java.lang.String version)
-
-
-
Field Detail
-
PROVIDER_RESOURCE
static final java.lang.String PROVIDER_RESOURCE
Resource name for a Log4j 2 provider properties file.- See Also:
- Constant Field Values
-
PROVIDERS
static final java.util.Collection<Provider> PROVIDERS
Loaded providers.
-
STARTUP_LOCK
static final java.util.concurrent.locks.Lock STARTUP_LOCK
Guards the ProviderUtil singleton instance from lazy initialization.This is primarily used for OSGi support. It allows the OSGi Activator to pause the startup and wait for a Provider to be installed. See LOG4J2-373.
-
COMPATIBLE_API_VERSIONS
private static final java.lang.String[] COMPATIBLE_API_VERSIONS
-
LOGGER
private static final Logger LOGGER
-
PROVIDER
private static volatile Provider PROVIDER
-
-
Method Detail
-
addProvider
static void addProvider(Provider provider)
-
loadProvider
static void loadProvider(java.net.URL url, java.lang.ClassLoader cl)Loads an individual Provider implementation. This method is really only useful for the OSGi bundle activator and this class itself.- Parameters:
url- the URL to the provider properties filecl- the ClassLoader to load the provider classes with
-
loadProviders
@Deprecated static void loadProviders(java.util.Enumeration<java.net.URL> urls, java.lang.ClassLoader cl)Deprecated.UseloadProvider(java.net.URL, ClassLoader)instead. Will be removed in 3.0.
-
getProvider
public static Provider getProvider()
- Since:
- 2.24.0
-
getProviders
public static java.lang.Iterable<Provider> getProviders()
-
hasProviders
public static boolean hasProviders()
-
lazyInit
static void lazyInit()
Lazily initializes the ProviderUtil singleton.Note that the following initial call to ProviderUtil may block until a Provider has been installed when running in an OSGi environment.
-
selectProvider
static Provider selectProvider(PropertiesUtil properties, java.util.Collection<Provider> providers, Logger statusLogger)
Used to test the publicgetProvider()method.
-
findClassLoader
public static java.lang.ClassLoader findClassLoader()
-
validVersion
private static boolean validVersion(java.lang.String version)
-
-