Class ProviderUtil

java.lang.Object
org.apache.logging.log4j.util.ProviderUtil

public final class ProviderUtil extends 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 should loadProvider(java.net.URL, ClassLoader) a classpath accordingly.
  • Field Details

    • PROVIDER_RESOURCE

      protected static final String PROVIDER_RESOURCE
      Resource name for a Log4j 2 provider properties file.
      See Also:
    • PROVIDERS

      protected static final Collection<Provider> PROVIDERS
      Loaded providers.
    • STARTUP_LOCK

      protected static final Lock STARTUP_LOCK
      Guards the ProviderUtil singleton instance from lazy initialization. This is primarily used for OSGi support.
      Since:
      2.1
    • API_VERSION

      private static final String API_VERSION
      See Also:
    • COMPATIBLE_API_VERSIONS

      private static final String[] COMPATIBLE_API_VERSIONS
    • LOGGER

      private static final Logger LOGGER
    • instance

      private static volatile ProviderUtil instance
  • Constructor Details

    • ProviderUtil

      private ProviderUtil()
  • Method Details

    • addProvider

      protected static void addProvider(Provider provider)
    • loadProvider

      protected static void loadProvider(URL url, 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 file
      cl - the ClassLoader to load the provider classes with
    • loadProviders

      protected static void loadProviders(ClassLoader classLoader)
      Parameters:
      classLoader - null can be used to mark the bootstrap class loader.
    • loadProviders

      @Deprecated protected static void loadProviders(Enumeration<URL> urls, ClassLoader cl)
      Deprecated.
      Use loadProvider(java.net.URL, ClassLoader) instead. Will be removed in 3.0.
    • getProviders

      public static Iterable<Provider> getProviders()
    • hasProviders

      public static boolean hasProviders()
    • lazyInit

      protected static void lazyInit()
      Lazily initializes the ProviderUtil singleton.
      Since:
      2.1
    • findClassLoader

      public static ClassLoader findClassLoader()
    • validVersion

      private static boolean validVersion(String version)