Top Description Fields Constructors Methods
org.slf4j

public final Class LoggerFactory

extends Object
Class Inheritance
Imports
java.io.IOException, java.lang.reflect.Constructor, .InvocationTargetException, java.net.URL, java.security.AccessController, .PrivilegedAction, java.util.ArrayList, .Arrays, .Enumeration, .Iterator, .LinkedHashSet, .List, .ServiceConfigurationError, .ServiceLoader, .Set, java.util.concurrent.LinkedBlockingQueue, org.slf4j.event.SubstituteLoggingEvent, org.slf4j.helpers.NOP_FallbackServiceProvider, .Reporter, .SubstituteLogger, .SubstituteServiceProvider, .Util, org.slf4j.spi.MDCAdapter, .SLF4JServiceProvider

The LoggerFactory is a utility class producing Loggers for various logging APIs, e.g. logback, reload4j, log4j and JDK 1.4 logging. Other implementations such as NOPLogger and SimpleLogger are also supported.

LoggerFactory is essentially a wrapper around an ILoggerFactory instance provided by a SLF4JServiceProvider.

Please note that all methods in LoggerFactory are static.

Authors
Alexander Dorokhine, Robert Elliot, Ceki Gülcü

Field Summary

Modifier and TypeField and Description
private static final String[]
API_COMPATIBILITY_LIST

It is LoggerFactory's responsibility to track version changes and manage the compatibility list.

pack-priv static final String
pack-priv static final String
pack-priv static boolean
pack-priv static final String
pack-priv static final int
pack-priv static final String
pack-priv static volatile int
pack-priv static final String
pack-priv static final String
pack-priv static final String
pack-priv static final String
pack-priv static final int
pack-priv static final NOP_FallbackServiceProvider
pack-priv static final int
pack-priv static volatile SLF4JServiceProvider
public static final String
PROVIDER_PROPERTY_KEY

System property for explicitly setting the provider class.

pack-priv static final String
private static final String
pack-priv static final SubstituteServiceProvider
pack-priv static final String
pack-priv static final int
pack-priv static final int
pack-priv static final String
pack-priv static final String
pack-priv static final String

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
private static final void
bind()

private static void
earlyBindMDCAdapter()

The value of PROVIDER.getMDCAdapter() can be null while PROVIDER has not yet initialized.

private static void
private static void
emitReplayWarning(int eventCount)

private static void
pack-priv static void
pack-priv static Set<URL>
pack-priv static List<SLF4JServiceProvider>
private static void
public static ILoggerFactory

Returns:

the ILoggerFactory instance in use
getILoggerFactory
()

Return the ILoggerFactory instance in use.

public static Logger

Returns:

logger
getLogger
(String
The name of the logger.
name
)

Return a logger named according to the name parameter using the statically bound ILoggerFactory instance.

public static Logger

Returns:

logger
getLogger
(Class<?>
the returned logger will be named after clazz
clazz
)

Return a logger named corresponding to the class passed as parameter, using the statically bound ILoggerFactory instance.

pack-priv static SLF4JServiceProvider

Returns:

provider in use
getProvider
()

Return the SLF4JServiceProvider in use.

private static ServiceLoader<SLF4JServiceProvider>
getServiceLoader(final ClassLoader classLoaderOfLoggerFactory)

private static boolean
pack-priv static SLF4JServiceProvider
private static boolean
nonMatchingClasses(Class<?> clazz, Class<?> autoComputedCallingClass)

private static final void
private static void
private static void
private static void
private static void
private static void
reportIgnoredStaticLoggerBinders(Set<URL> staticLoggerBinderPathSet)

private static void
reportMultipleBindingAmbiguity(List<SLF4JServiceProvider> providerList)

Prints a warning message on the console if multiple bindings were found on the class path.

pack-priv static void
reset()

Force LoggerFactory to consider itself uninitialized.

private static void
private static final void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

API_COMPATIBILITY_LISTback to summary
private static final String[] API_COMPATIBILITY_LIST

It is LoggerFactory's responsibility to track version changes and manage the compatibility list.

CODES_PREFIXback to summary
pack-priv static final String CODES_PREFIX
CONNECTED_WITH_MSGback to summary
pack-priv static final String CONNECTED_WITH_MSG
DETECT_LOGGER_NAME_MISMATCHback to summary
pack-priv static boolean DETECT_LOGGER_NAME_MISMATCH
DETECT_LOGGER_NAME_MISMATCH_PROPERTYback to summary
pack-priv static final String DETECT_LOGGER_NAME_MISMATCH_PROPERTY
FAILED_INITIALIZATIONback to summary
pack-priv static final int FAILED_INITIALIZATION
IGNORED_BINDINGS_URLback to summary
pack-priv static final String IGNORED_BINDINGS_URL
INITIALIZATION_STATEback to summary
pack-priv static volatile int INITIALIZATION_STATE
JAVA_VENDOR_PROPERTYback to summary
pack-priv static final String JAVA_VENDOR_PROPERTY
LOGGER_NAME_MISMATCH_URLback to summary
pack-priv static final String LOGGER_NAME_MISMATCH_URL
MULTIPLE_BINDINGS_URLback to summary
pack-priv static final String MULTIPLE_BINDINGS_URL
NO_PROVIDERS_URLback to summary
pack-priv static final String NO_PROVIDERS_URL
NOP_FALLBACK_INITIALIZATIONback to summary
pack-priv static final int NOP_FALLBACK_INITIALIZATION
NOP_FALLBACK_SERVICE_PROVIDERback to summary
pack-priv static final NOP_FallbackServiceProvider NOP_FALLBACK_SERVICE_PROVIDER
ONGOING_INITIALIZATIONback to summary
pack-priv static final int ONGOING_INITIALIZATION
PROVIDERback to summary
pack-priv static volatile SLF4JServiceProvider PROVIDER
PROVIDER_PROPERTY_KEYback to summary
public static final String PROVIDER_PROPERTY_KEY

System property for explicitly setting the provider class. If set and the provider could be instantiated, then the service loading mechanism will be bypassed.

Since
2.0.9
REPLAY_URLback to summary
pack-priv static final String REPLAY_URL
STATIC_LOGGER_BINDER_PATHback to summary
private static final String STATIC_LOGGER_BINDER_PATH
SUBST_PROVIDERback to summary
pack-priv static final SubstituteServiceProvider SUBST_PROVIDER
SUBSTITUTE_LOGGER_URLback to summary
pack-priv static final String SUBSTITUTE_LOGGER_URL
SUCCESSFUL_INITIALIZATIONback to summary
pack-priv static final int SUCCESSFUL_INITIALIZATION
UNINITIALIZEDback to summary
pack-priv static final int UNINITIALIZED
UNSUCCESSFUL_INIT_MSGback to summary
pack-priv static final String UNSUCCESSFUL_INIT_MSG
UNSUCCESSFUL_INIT_URLback to summary
pack-priv static final String UNSUCCESSFUL_INIT_URL
VERSION_MISMATCHback to summary
pack-priv static final String VERSION_MISMATCH

Constructor Detail

LoggerFactoryback to summary
private LoggerFactory()

Method Detail

bindback to summary
private static final void bind()
earlyBindMDCAdapterback to summary
private static void earlyBindMDCAdapter()

The value of PROVIDER.getMDCAdapter() can be null while PROVIDER has not yet initialized. However, SLF4JServiceProvider implementations are expected to initialize their internal MDCAdapter field in their constructor or on field declaration.

emitReplayOrSubstituionWarningback to summary
private static void emitReplayOrSubstituionWarning(SubstituteLoggingEvent event, int queueSize)
emitReplayWarningback to summary
private static void emitReplayWarning(int eventCount)
emitSubstitutionWarningback to summary
private static void emitSubstitutionWarning()
failedBindingback to summary
pack-priv static void failedBinding(Throwable t)
findPossibleStaticLoggerBinderPathSetback to summary
pack-priv static Set<URL> findPossibleStaticLoggerBinderPathSet()
findServiceProvidersback to summary
pack-priv static List<SLF4JServiceProvider> findServiceProviders()
fixSubstituteLoggersback to summary
private static void fixSubstituteLoggers()
getILoggerFactoryback to summary
public static ILoggerFactory getILoggerFactory()

Return the ILoggerFactory instance in use.

ILoggerFactory instance is bound with this class at compile time.

Returns:ILoggerFactory

the ILoggerFactory instance in use

getLoggerback to summary
public static Logger getLogger(String name)

Return a logger named according to the name parameter using the statically bound ILoggerFactory instance.

Parameters
name:String

The name of the logger.

Returns:Logger

logger

getLoggerback to summary
public static Logger getLogger(Class<?> clazz)

Return a logger named corresponding to the class passed as parameter, using the statically bound ILoggerFactory instance.

In case the clazz parameter differs from the name of the caller as computed internally by SLF4J, a logger name mismatch warning will be printed but only if the slf4j.detectLoggerNameMismatch system property is set to true. By default, this property is not set and no warnings will be printed even in case of a logger name mismatch.

Parameters
clazz:Class<?>

the returned logger will be named after clazz

Returns:Logger

logger

See Also
Detected logger name mismatch
getProviderback to summary
pack-priv static SLF4JServiceProvider getProvider()

Return the SLF4JServiceProvider in use.

Returns:SLF4JServiceProvider

provider in use

Since
1.8.0
getServiceLoaderback to summary
private static ServiceLoader<SLF4JServiceProvider> getServiceLoader(final ClassLoader classLoaderOfLoggerFactory)
isAmbiguousProviderListback to summary
private static boolean isAmbiguousProviderList(List<SLF4JServiceProvider> providerList)
loadExplicitlySpecifiedback to summary
pack-priv static SLF4JServiceProvider loadExplicitlySpecified(ClassLoader classLoader)
nonMatchingClassesback to summary
private static boolean nonMatchingClasses(Class<?> clazz, Class<?> autoComputedCallingClass)
performInitializationback to summary
private static final void performInitialization()
postBindCleanUpback to summary
private static void postBindCleanUp()
replayEventsback to summary
private static void replayEvents()
replaySingleEventback to summary
private static void replaySingleEvent(SubstituteLoggingEvent event)
reportActualBindingback to summary
private static void reportActualBinding(List<SLF4JServiceProvider> providerList)
reportIgnoredStaticLoggerBindersback to summary
private static void reportIgnoredStaticLoggerBinders(Set<URL> staticLoggerBinderPathSet)
reportMultipleBindingAmbiguityback to summary
private static void reportMultipleBindingAmbiguity(List<SLF4JServiceProvider> providerList)

Prints a warning message on the console if multiple bindings were found on the class path. No reporting is done otherwise.

resetback to summary
pack-priv static void reset()

Force LoggerFactory to consider itself uninitialized.

This method is intended to be called by classes (in the same package) for testing purposes. This method is internal. It can be modified, renamed or removed at any time without notice.

You are strongly discouraged from calling this method in production code.

safelyInstantiateback to summary
private static void safelyInstantiate(List<SLF4JServiceProvider> providerList, Iterator<SLF4JServiceProvider> iterator)
versionSanityCheckback to summary
private static final void versionSanityCheck()