Top Description Fields Constructors Methods
org.apache.logging.log4j.util

public final Class ProviderUtil

extends Object
Class Inheritance
Annotations
@InternalApi
@BaselineIgnore:2.22.0
@ServiceConsumer:Provider
resolution:optional
cardinality:multiple
Imports
aQute.bnd.annotation.Cardinality, .Resolution, aQute.bnd.annotation.baseline.BaselineIgnore, aQute.bnd.annotation.spi.ServiceConsumer, edu.umd.cs.findbugs.annotations.SuppressFBWarnings, java.io.IOException, java.lang.invoke.MethodHandles, java.net.URL, java.util.Collection, .Enumeration, .HashSet, .Properties, java.util.concurrent.locks.Lock, .ReentrantLock, org.apache.logging.log4j.Logger, org.apache.logging.log4j.spi.Provider, org.apache.logging.log4j.status.StatusLogger

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 should loadProvider(java.net.URL, ClassLoader) a classpath accordingly.

Field Summary

Modifier and TypeField and Description
private static final String
private static final String[]
private static volatile ProviderUtil
private static final Logger
pack-priv static final String
PROVIDER_RESOURCE

Resource name for a Log4j 2 provider properties file.

pack-priv static final Collection<Provider>
PROVIDERS

Loaded providers.

pack-priv static final Lock
STARTUP_LOCK

Guards the ProviderUtil singleton instance from lazy initialization.

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
pack-priv static void
addProvider(final Provider provider)

public static ClassLoader
public static Iterable<Provider>
public static boolean
pack-priv static void
lazyInit()

Lazily initializes the ProviderUtil singleton.

pack-priv static void
loadProvider(final URL
the URL to the provider properties file
url
,
final ClassLoader
the ClassLoader to load the provider classes with
cl
)

Loads an individual Provider implementation.

pack-priv static void
loadProviders(final ClassLoader
null can be used to mark the bootstrap class loader.
classLoader
)

pack-priv static void
loadProviders(final Enumeration<URL> urls, final ClassLoader cl)
Deprecated Use loadProvider(java.net.URL, ClassLoader) instead. Will be removed in 3.0.

private static boolean
validVersion(final String version)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

API_VERSIONback to summary
private static final String API_VERSION
COMPATIBLE_API_VERSIONSback to summary
private static final String[] COMPATIBLE_API_VERSIONS
instanceback to summary
private static volatile ProviderUtil instance
LOGGERback to summary
private static final Logger LOGGER
PROVIDER_RESOURCEback to summary
pack-priv static final String PROVIDER_RESOURCE

Resource name for a Log4j 2 provider properties file.

PROVIDERSback to summary
pack-priv static final Collection<Provider> PROVIDERS

Loaded providers.

STARTUP_LOCKback to summary
pack-priv static final Lock STARTUP_LOCK

Guards the ProviderUtil singleton instance from lazy initialization. This is primarily used for OSGi support.

Since
2.1

Constructor Detail

ProviderUtilback to summary
private ProviderUtil()

Method Detail

addProviderback to summary
pack-priv static void addProvider(final Provider provider)
findClassLoaderback to summary
public static ClassLoader findClassLoader()
getProvidersback to summary
public static Iterable<Provider> getProviders()
hasProvidersback to summary
public static boolean hasProviders()
lazyInitback to summary
pack-priv static void lazyInit()

Lazily initializes the ProviderUtil singleton.

Since
2.1
loadProviderback to summary
pack-priv static void loadProvider(final URL url, final ClassLoader cl)

Loads an individual Provider implementation. This method is really only useful for the OSGi bundle activator and this class itself.

Parameters
url:URL

the URL to the provider properties file

cl:ClassLoader

the ClassLoader to load the provider classes with

Annotations
@SuppressFBWarnings:URLCONNECTION_SSRF_FD
justification:Uses a fixed URL that ends in \'META-INF/log4j-provider.properties\'.
loadProvidersback to summary
pack-priv static void loadProviders(final ClassLoader classLoader)
Parameters
classLoader:ClassLoader

null can be used to mark the bootstrap class loader.

loadProvidersback to summary
pack-priv static void loadProviders(final Enumeration<URL> urls, final ClassLoader cl)

Deprecated

Use loadProvider(java.net.URL, ClassLoader) instead. Will be removed in 3.0.

Annotations
@Deprecated
validVersionback to summary
private static boolean validVersion(final String version)