Package org.slf4j
Class LoggerFactory
- java.lang.Object
-
- org.slf4j.LoggerFactory
-
public final class LoggerFactory extends java.lang.Object
TheLoggerFactory
is a utility class producing Loggers for various logging APIs, most notably for log4j, logback and JDK 1.4 logging. Other implementations such asNOPLogger
andSimpleLogger
are also supported.LoggerFactory
is essentially a wrapper around anILoggerFactory
instance bound withLoggerFactory
at compile time. Please note that all methods inLoggerFactory
are static.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String[]
API_COMPATIBILITY_LIST
It is LoggerFactory's responsibility to track version changes and manage the compatibility list.(package private) static java.lang.String
CODES_PREFIX
(package private) static boolean
DETECT_LOGGER_NAME_MISMATCH
(package private) static java.lang.String
DETECT_LOGGER_NAME_MISMATCH_PROPERTY
(package private) static int
FAILED_INITIALIZATION
(package private) static int
INITIALIZATION_STATE
(package private) static java.lang.String
JAVA_VENDOR_PROPERTY
(package private) static java.lang.String
LOGGER_NAME_MISMATCH_URL
(package private) static java.lang.String
MULTIPLE_BINDINGS_URL
(package private) static java.lang.String
NO_STATICLOGGERBINDER_URL
(package private) static NOPLoggerFactory
NOP_FALLBACK_FACTORY
(package private) static int
NOP_FALLBACK_INITIALIZATION
(package private) static java.lang.String
NULL_LF_URL
(package private) static int
ONGOING_INITIALIZATION
(package private) static java.lang.String
REPLAY_URL
private static java.lang.String
STATIC_LOGGER_BINDER_PATH
(package private) static SubstituteLoggerFactory
SUBST_FACTORY
(package private) static java.lang.String
SUBSTITUTE_LOGGER_URL
(package private) static int
SUCCESSFUL_INITIALIZATION
(package private) static int
UNINITIALIZED
(package private) static java.lang.String
UNSUCCESSFUL_INIT_MSG
(package private) static java.lang.String
UNSUCCESSFUL_INIT_URL
(package private) static java.lang.String
VERSION_MISMATCH
-
Constructor Summary
Constructors Modifier Constructor Description private
LoggerFactory()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static void
bind()
private static void
emitReplayOrSubstituionWarning(SubstituteLoggingEvent event, int queueSize)
private static void
emitReplayWarning(int eventCount)
private static void
emitSubstitutionWarning()
(package private) static void
failedBinding(java.lang.Throwable t)
(package private) static java.util.Set<java.net.URL>
findPossibleStaticLoggerBinderPathSet()
private static void
fixSubstituteLoggers()
static ILoggerFactory
getILoggerFactory()
Return theILoggerFactory
instance in use.static Logger
getLogger(java.lang.Class<?> clazz)
Return a logger named corresponding to the class passed as parameter, using the statically boundILoggerFactory
instance.static Logger
getLogger(java.lang.String name)
Return a logger named according to the name parameter using the statically boundILoggerFactory
instance.private static boolean
isAmbiguousStaticLoggerBinderPathSet(java.util.Set<java.net.URL> binderPathSet)
private static boolean
isAndroid()
private static boolean
messageContainsOrgSlf4jImplStaticLoggerBinder(java.lang.String msg)
private static boolean
nonMatchingClasses(java.lang.Class<?> clazz, java.lang.Class<?> autoComputedCallingClass)
private static void
performInitialization()
private static void
replayEvents()
private static void
replaySingleEvent(SubstituteLoggingEvent event)
private static void
reportActualBinding(java.util.Set<java.net.URL> binderPathSet)
private static void
reportMultipleBindingAmbiguity(java.util.Set<java.net.URL> binderPathSet)
Prints a warning message on the console if multiple bindings were found on the class path.(package private) static void
reset()
Force LoggerFactory to consider itself uninitialized.private static void
versionSanityCheck()
-
-
-
Field Detail
-
CODES_PREFIX
static final java.lang.String CODES_PREFIX
- See Also:
- Constant Field Values
-
NO_STATICLOGGERBINDER_URL
static final java.lang.String NO_STATICLOGGERBINDER_URL
- See Also:
- Constant Field Values
-
MULTIPLE_BINDINGS_URL
static final java.lang.String MULTIPLE_BINDINGS_URL
- See Also:
- Constant Field Values
-
NULL_LF_URL
static final java.lang.String NULL_LF_URL
- See Also:
- Constant Field Values
-
VERSION_MISMATCH
static final java.lang.String VERSION_MISMATCH
- See Also:
- Constant Field Values
-
SUBSTITUTE_LOGGER_URL
static final java.lang.String SUBSTITUTE_LOGGER_URL
- See Also:
- Constant Field Values
-
LOGGER_NAME_MISMATCH_URL
static final java.lang.String LOGGER_NAME_MISMATCH_URL
- See Also:
- Constant Field Values
-
REPLAY_URL
static final java.lang.String REPLAY_URL
- See Also:
- Constant Field Values
-
UNSUCCESSFUL_INIT_URL
static final java.lang.String UNSUCCESSFUL_INIT_URL
- See Also:
- Constant Field Values
-
UNSUCCESSFUL_INIT_MSG
static final java.lang.String UNSUCCESSFUL_INIT_MSG
- See Also:
- Constant Field Values
-
UNINITIALIZED
static final int UNINITIALIZED
- See Also:
- Constant Field Values
-
ONGOING_INITIALIZATION
static final int ONGOING_INITIALIZATION
- See Also:
- Constant Field Values
-
FAILED_INITIALIZATION
static final int FAILED_INITIALIZATION
- See Also:
- Constant Field Values
-
SUCCESSFUL_INITIALIZATION
static final int SUCCESSFUL_INITIALIZATION
- See Also:
- Constant Field Values
-
NOP_FALLBACK_INITIALIZATION
static final int NOP_FALLBACK_INITIALIZATION
- See Also:
- Constant Field Values
-
INITIALIZATION_STATE
static volatile int INITIALIZATION_STATE
-
SUBST_FACTORY
static final SubstituteLoggerFactory SUBST_FACTORY
-
NOP_FALLBACK_FACTORY
static final NOPLoggerFactory NOP_FALLBACK_FACTORY
-
DETECT_LOGGER_NAME_MISMATCH_PROPERTY
static final java.lang.String DETECT_LOGGER_NAME_MISMATCH_PROPERTY
- See Also:
- Constant Field Values
-
JAVA_VENDOR_PROPERTY
static final java.lang.String JAVA_VENDOR_PROPERTY
- See Also:
- Constant Field Values
-
DETECT_LOGGER_NAME_MISMATCH
static boolean DETECT_LOGGER_NAME_MISMATCH
-
API_COMPATIBILITY_LIST
private static final java.lang.String[] API_COMPATIBILITY_LIST
It is LoggerFactory's responsibility to track version changes and manage the compatibility list. It is assumed that all versions in the 1.6 are mutually compatible.
-
STATIC_LOGGER_BINDER_PATH
private static java.lang.String STATIC_LOGGER_BINDER_PATH
-
-
Method Detail
-
reset
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.
-
performInitialization
private static final void performInitialization()
-
messageContainsOrgSlf4jImplStaticLoggerBinder
private static boolean messageContainsOrgSlf4jImplStaticLoggerBinder(java.lang.String msg)
-
bind
private static final void bind()
-
fixSubstituteLoggers
private static void fixSubstituteLoggers()
-
failedBinding
static void failedBinding(java.lang.Throwable t)
-
replayEvents
private static void replayEvents()
-
emitReplayOrSubstituionWarning
private static void emitReplayOrSubstituionWarning(SubstituteLoggingEvent event, int queueSize)
-
replaySingleEvent
private static void replaySingleEvent(SubstituteLoggingEvent event)
-
emitSubstitutionWarning
private static void emitSubstitutionWarning()
-
emitReplayWarning
private static void emitReplayWarning(int eventCount)
-
versionSanityCheck
private static final void versionSanityCheck()
-
findPossibleStaticLoggerBinderPathSet
static java.util.Set<java.net.URL> findPossibleStaticLoggerBinderPathSet()
-
isAmbiguousStaticLoggerBinderPathSet
private static boolean isAmbiguousStaticLoggerBinderPathSet(java.util.Set<java.net.URL> binderPathSet)
-
reportMultipleBindingAmbiguity
private static void reportMultipleBindingAmbiguity(java.util.Set<java.net.URL> binderPathSet)
Prints a warning message on the console if multiple bindings were found on the class path. No reporting is done otherwise.
-
isAndroid
private static boolean isAndroid()
-
reportActualBinding
private static void reportActualBinding(java.util.Set<java.net.URL> binderPathSet)
-
getLogger
public static Logger getLogger(java.lang.String name)
Return a logger named according to the name parameter using the statically boundILoggerFactory
instance.- Parameters:
name
- The name of the logger.- Returns:
- logger
-
getLogger
public static Logger getLogger(java.lang.Class<?> clazz)
Return a logger named corresponding to the class passed as parameter, using the statically boundILoggerFactory
instance.In case the 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 theslf4j.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
- the returned logger will be named after clazz- Returns:
- logger
- See Also:
- Detected logger name mismatch
-
nonMatchingClasses
private static boolean nonMatchingClasses(java.lang.Class<?> clazz, java.lang.Class<?> autoComputedCallingClass)
-
getILoggerFactory
public static ILoggerFactory getILoggerFactory()
Return theILoggerFactory
instance in use. ILoggerFactory instance is bound with this class at compile time.- Returns:
- the ILoggerFactory instance in use
-
-