Package ch.qos.logback.classic
Class LoggerContext
- java.lang.Object
-
- ch.qos.logback.core.ContextBase
-
- ch.qos.logback.classic.LoggerContext
-
- All Implemented Interfaces:
Context
,LifeCycle
,PropertyContainer
,org.slf4j.ILoggerFactory
public class LoggerContext extends ContextBase implements org.slf4j.ILoggerFactory, LifeCycle
LoggerContext glues many of the logback-classic components together. In principle, every logback-classic component instance is attached either directly or indirectly to a LoggerContext instance. Just as importantly LoggerContext implements theILoggerFactory
acting as the manufacturing source ofLogger
instances.
-
-
Field Summary
Fields Modifier and Type Field Description static boolean
DEFAULT_PACKAGING_DATA
Default setting of packaging data in stack tracesprivate java.util.List<java.lang.String>
frameworkPackages
private java.util.Map<java.lang.String,Logger>
loggerCache
private java.util.List<LoggerContextListener>
loggerContextListenerList
private LoggerContextVO
loggerContextRemoteView
private int
maxCallerDataDepth
private int
noAppenderWarning
private boolean
packagingDataEnabled
(package private) int
resetCount
(package private) Logger
root
private int
size
private TurboFilterList
turboFilterList
-
Fields inherited from class ch.qos.logback.core.ContextBase
scheduledFutures
-
-
Constructor Summary
Constructors Constructor Description LoggerContext()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addListener(LoggerContextListener listener)
void
addTurboFilter(TurboFilter newFilter)
private void
cancelScheduledTasks()
Logger
exists(java.lang.String name)
Check if the named logger exists in the hierarchy.(package private) void
fireOnLevelChange(Logger logger, Level level)
private void
fireOnReset()
private void
fireOnStart()
private void
fireOnStop()
java.util.List<LoggerContextListener>
getCopyOfListenerList()
java.util.List<java.lang.String>
getFrameworkPackages()
List of packages considered part of the logging framework such that they are never considered as callers of the logging framework.Logger
getLogger(java.lang.Class<?> clazz)
Logger
getLogger(java.lang.String name)
LoggerContextVO
getLoggerContextRemoteView()
java.util.List<Logger>
getLoggerList()
int
getMaxCallerDataDepth()
(package private) FilterReply
getTurboFilterChainDecision_0_3OrMore(org.slf4j.Marker marker, Logger logger, Level level, java.lang.String format, java.lang.Object[] params, java.lang.Throwable t)
(package private) FilterReply
getTurboFilterChainDecision_1(org.slf4j.Marker marker, Logger logger, Level level, java.lang.String format, java.lang.Object param, java.lang.Throwable t)
(package private) FilterReply
getTurboFilterChainDecision_2(org.slf4j.Marker marker, Logger logger, Level level, java.lang.String format, java.lang.Object param1, java.lang.Object param2, java.lang.Throwable t)
TurboFilterList
getTurboFilterList()
private void
incSize()
(package private) void
initEvaluatorMap()
boolean
isPackagingDataEnabled()
(package private) void
noAppenderDefinedWarning(Logger logger)
void
putProperty(java.lang.String key, java.lang.String val)
Set a property of this context.void
removeListener(LoggerContextListener listener)
void
reset()
This method clears all internal properties, except internal status messages, closes all appenders, removes any turboFilters, fires an OnReset event, removes all status listeners, removes all context listeners (except those which are reset resistant).private void
resetAllListeners()
private void
resetListenersExceptResetResistant()
private void
resetStatusListeners()
void
resetTurboFilterList()
First processPriorToRemoval all registered turbo filters and then clear the registration list.void
setMaxCallerDataDepth(int maxCallerDataDepth)
void
setName(java.lang.String name)
The context name can be set only if it is not already set, or if the current name is the default context name, namely "default", or if the current name and the old name are the same.void
setPackagingDataEnabled(boolean packagingDataEnabled)
(package private) int
size()
void
start()
void
stop()
java.lang.String
toString()
private void
updateLoggerContextVO()
A new instance of LoggerContextRemoteView needs to be created each time the name or propertyMap (including keys or values) changes.-
Methods inherited from class ch.qos.logback.core.ContextBase
addScheduledFuture, getBirthTime, getConfigurationLock, getCopyOfPropertyMap, getExecutorService, getName, getObject, getProperty, getScheduledExecutorService, getScheduledFutures, getStatusManager, initCollisionMaps, isStarted, putObject, register, removeObject, setStatusManager
-
-
-
-
Field Detail
-
DEFAULT_PACKAGING_DATA
public static final boolean DEFAULT_PACKAGING_DATA
Default setting of packaging data in stack traces- See Also:
- Constant Field Values
-
root
final Logger root
-
size
private int size
-
noAppenderWarning
private int noAppenderWarning
-
loggerContextListenerList
private final java.util.List<LoggerContextListener> loggerContextListenerList
-
loggerCache
private java.util.Map<java.lang.String,Logger> loggerCache
-
loggerContextRemoteView
private LoggerContextVO loggerContextRemoteView
-
turboFilterList
private final TurboFilterList turboFilterList
-
packagingDataEnabled
private boolean packagingDataEnabled
-
maxCallerDataDepth
private int maxCallerDataDepth
-
resetCount
int resetCount
-
frameworkPackages
private java.util.List<java.lang.String> frameworkPackages
-
-
Method Detail
-
initEvaluatorMap
void initEvaluatorMap()
-
updateLoggerContextVO
private void updateLoggerContextVO()
A new instance of LoggerContextRemoteView needs to be created each time the name or propertyMap (including keys or values) changes.
-
putProperty
public void putProperty(java.lang.String key, java.lang.String val)
Description copied from interface:Context
Set a property of this context.- Specified by:
putProperty
in interfaceContext
- Overrides:
putProperty
in classContextBase
-
setName
public void setName(java.lang.String name)
Description copied from class:ContextBase
The context name can be set only if it is not already set, or if the current name is the default context name, namely "default", or if the current name and the old name are the same.- Specified by:
setName
in interfaceContext
- Overrides:
setName
in classContextBase
-
getLogger
public final Logger getLogger(java.lang.Class<?> clazz)
-
getLogger
public final Logger getLogger(java.lang.String name)
- Specified by:
getLogger
in interfaceorg.slf4j.ILoggerFactory
-
incSize
private void incSize()
-
size
int size()
-
exists
public Logger exists(java.lang.String name)
Check if the named logger exists in the hierarchy. If so return its reference, otherwise returnsnull
.- Parameters:
name
- the name of the logger to search for.
-
noAppenderDefinedWarning
final void noAppenderDefinedWarning(Logger logger)
-
getLoggerList
public java.util.List<Logger> getLoggerList()
-
getLoggerContextRemoteView
public LoggerContextVO getLoggerContextRemoteView()
-
setPackagingDataEnabled
public void setPackagingDataEnabled(boolean packagingDataEnabled)
-
isPackagingDataEnabled
public boolean isPackagingDataEnabled()
-
reset
public void reset()
This method clears all internal properties, except internal status messages, closes all appenders, removes any turboFilters, fires an OnReset event, removes all status listeners, removes all context listeners (except those which are reset resistant). As mentioned above, internal status messages survive resets.- Overrides:
reset
in classContextBase
-
cancelScheduledTasks
private void cancelScheduledTasks()
-
resetStatusListeners
private void resetStatusListeners()
-
getTurboFilterList
public TurboFilterList getTurboFilterList()
-
addTurboFilter
public void addTurboFilter(TurboFilter newFilter)
-
resetTurboFilterList
public void resetTurboFilterList()
First processPriorToRemoval all registered turbo filters and then clear the registration list.
-
getTurboFilterChainDecision_0_3OrMore
final FilterReply getTurboFilterChainDecision_0_3OrMore(org.slf4j.Marker marker, Logger logger, Level level, java.lang.String format, java.lang.Object[] params, java.lang.Throwable t)
-
getTurboFilterChainDecision_1
final FilterReply getTurboFilterChainDecision_1(org.slf4j.Marker marker, Logger logger, Level level, java.lang.String format, java.lang.Object param, java.lang.Throwable t)
-
getTurboFilterChainDecision_2
final FilterReply getTurboFilterChainDecision_2(org.slf4j.Marker marker, Logger logger, Level level, java.lang.String format, java.lang.Object param1, java.lang.Object param2, java.lang.Throwable t)
-
addListener
public void addListener(LoggerContextListener listener)
-
removeListener
public void removeListener(LoggerContextListener listener)
-
resetListenersExceptResetResistant
private void resetListenersExceptResetResistant()
-
resetAllListeners
private void resetAllListeners()
-
getCopyOfListenerList
public java.util.List<LoggerContextListener> getCopyOfListenerList()
-
fireOnReset
private void fireOnReset()
-
fireOnStart
private void fireOnStart()
-
fireOnStop
private void fireOnStop()
-
start
public void start()
- Specified by:
start
in interfaceLifeCycle
- Overrides:
start
in classContextBase
-
stop
public void stop()
- Specified by:
stop
in interfaceLifeCycle
- Overrides:
stop
in classContextBase
-
toString
public java.lang.String toString()
- Overrides:
toString
in classContextBase
-
getMaxCallerDataDepth
public int getMaxCallerDataDepth()
-
setMaxCallerDataDepth
public void setMaxCallerDataDepth(int maxCallerDataDepth)
-
getFrameworkPackages
public java.util.List<java.lang.String> getFrameworkPackages()
List of packages considered part of the logging framework such that they are never considered as callers of the logging framework. This list used to compute the caller for logging events. To designate package "com.foo" as well as all its subpackages as being part of the logging framework, simply add "com.foo" to this list.- Returns:
- list of framework packages
-
-