Class LoggerRepositoryExImpl
- All Implemented Interfaces:
LoggerRepositoryEx, org.apache.log4j.spi.LoggerRepository, org.apache.log4j.spi.RendererSupport, org.apache.log4j.xml.UnrecognizedElementHandler
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final classProxy that implements HierarchyEventListener and delegates to LoggerEventListener.private static final classImplementation of RendererSupportImpl if not provided by LoggerRepository. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ListError list.private final MapMap of HierarchyEventListener keyed by LoggingEventListener.private org.apache.log4j.spi.LoggerFactoryLogger factory.private StringName of hierarchy.private MapThe repository can also be used as an object store for various objects used by log4j components.private PluginRegistryPlug in registry.private booleanTrue if hierarchy has not been modified.private final MapProperties.private final org.apache.log4j.spi.RendererSupportRenderer support.private final org.apache.log4j.spi.LoggerRepositoryWrapped logger repository.private final ArrayListList of repository event listeners.private SchedulerScheduler. -
Constructor Summary
ConstructorsConstructorDescriptionLoggerRepositoryExImpl(org.apache.log4j.spi.LoggerRepository repository) Constructs a new logger hierarchy. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddErrorItem(ErrorItem errorItem) Add an error item to the list of previously encountered errors.voidaddHierarchyEventListener(org.apache.log4j.spi.HierarchyEventListener listener) Deprecated.Superceded by addLoggerEventListenervoidaddLoggerEventListener(LoggerEventListener listener) Add aLoggerEventListenerto the repository.voidAdd aLoggerRepositoryEventListenerto the repository.voidemitNoAppenderWarning(org.apache.log4j.Category cat) Issue warning that there are no appenders in hierarchy.org.apache.log4j.LoggerCheck if the named logger exists in the hierarchy.voidfireAddAppenderEvent(org.apache.log4j.Category logger, org.apache.log4j.Appender appender) Requests that a appender added event be sent to any registeredLoggerEventListener.voidRequests that a configuration changed event be sent to any registeredLoggerRepositoryEventListener.voidfireLevelChangedEvent(org.apache.log4j.Logger logger) Requests that a level changed event be sent to any registeredLoggerEventListener.voidfireRemoveAppenderEvent(org.apache.log4j.Category logger, org.apache.log4j.Appender appender) Requests that a appender removed event be sent to any registeredLoggerEventListener.Deprecated.Please usegetCurrentLoggers()instead.Returns all the currently defined categories in this hierarchy as anEnumeration.Return the the list of previously encouterederror items.org.apache.log4j.LoggerReturn a new logger instance named as the first parameter using the default factory.org.apache.log4j.LoggerReturn a new logger instance named as the first parameter usingfactory.org.apache.log4j.spi.LoggerFactoryGet logger factory.getName()Return the name of this hierarchy.Get object by key.Return the PluginRegisty for this LoggerRepository.Get the properties specific for this repository.getProperty(String key) Get the property of this repository.org.apache.log4j.or.RendererMapGet the renderer map for this hierarchy.org.apache.log4j.LoggerGet the root of this hierarchy.Return this repository's own scheduler.org.apache.log4j.LevelReturns the current threshold.booleanisDisabled(int level) This method will returntrueif this repository is disabled forlevelvalue passed as parameter andfalseotherwise.booleanIs the current configuration of the repository in its original (pristine) state?booleanparseUnrecognizedElement(Element element, Properties props) voidPuts object by key.voidremoveLoggerEventListener(LoggerEventListener listener) Remove aLoggerEventListenerfrom the repository.voidRemove aLoggerRepositoryEventListenerfrom the repository.voidReset all values contained in this hierarchy instance to their default.voidsetLoggerFactory(org.apache.log4j.spi.LoggerFactory factory) Set logger factory.voidSet the name of this repository.voidsetPristine(boolean state) Set the pristine flag.voidsetProperty(String key, String value) Set a property by key and value.voidsetRenderer(Class renderedClass, org.apache.log4j.or.ObjectRenderer renderer) Used by subclasses to add a renderer to the hierarchy passed as parameter.voidsetThreshold(String levelStr) The string form ofsetThreshold(Level).voidsetThreshold(org.apache.log4j.Level l) Enable logging for logging requests with levellor higher.voidshutdown()Shutting down a hierarchy will safely close and remove all appenders in all categories including the root logger.
-
Field Details
-
repo
private final org.apache.log4j.spi.LoggerRepository repoWrapped logger repository. -
loggerFactory
private org.apache.log4j.spi.LoggerFactory loggerFactoryLogger factory. Does not affect class of logger created by underlying repository. -
rendererSupport
private final org.apache.log4j.spi.RendererSupport rendererSupportRenderer support. -
repositoryEventListeners
List of repository event listeners. -
loggerEventListeners
Map of HierarchyEventListener keyed by LoggingEventListener. -
name
Name of hierarchy. -
pluginRegistry
Plug in registry. -
properties
Properties. -
scheduler
Scheduler. -
objectMap
The repository can also be used as an object store for various objects used by log4j components. -
errorList
Error list. -
pristine
private boolean pristineTrue if hierarchy has not been modified.
-
-
Constructor Details
-
LoggerRepositoryExImpl
public LoggerRepositoryExImpl(org.apache.log4j.spi.LoggerRepository repository) Constructs a new logger hierarchy.- Parameters:
repository- Base implementation of repository.
-
-
Method Details
-
addLoggerRepositoryEventListener
Add aLoggerRepositoryEventListenerto the repository. The listener will be called when repository events occur.- Specified by:
addLoggerRepositoryEventListenerin interfaceLoggerRepositoryEx- Parameters:
listener- listener
-
removeLoggerRepositoryEventListener
Remove aLoggerRepositoryEventListenerfrom the repository.- Specified by:
removeLoggerRepositoryEventListenerin interfaceLoggerRepositoryEx- Parameters:
listener- listener
-
addLoggerEventListener
Add aLoggerEventListenerto the repository. The listener will be called when repository events occur.- Specified by:
addLoggerEventListenerin interfaceLoggerRepositoryEx- Parameters:
listener- listener
-
addHierarchyEventListener
public void addHierarchyEventListener(org.apache.log4j.spi.HierarchyEventListener listener) Deprecated.Superceded by addLoggerEventListenerAdd aHierarchyEventListenerevent to the repository.- Specified by:
addHierarchyEventListenerin interfaceorg.apache.log4j.spi.LoggerRepository- Parameters:
listener- listener
-
removeLoggerEventListener
Remove aLoggerEventListenerfrom the repository.- Specified by:
removeLoggerEventListenerin interfaceLoggerRepositoryEx- Parameters:
listener- listener to be removed
-
emitNoAppenderWarning
public void emitNoAppenderWarning(org.apache.log4j.Category cat) Issue warning that there are no appenders in hierarchy.- Specified by:
emitNoAppenderWarningin interfaceorg.apache.log4j.spi.LoggerRepository- Parameters:
cat- logger, not currently used.
-
exists
Check if the named logger exists in the hierarchy. If so return its reference, otherwise returnsnull.- Specified by:
existsin interfaceorg.apache.log4j.spi.LoggerRepository- Parameters:
loggerName- The name of the logger to search for.- Returns:
- true if logger exists.
-
getName
Return the name of this hierarchy.- Specified by:
getNamein interfaceLoggerRepositoryEx- Returns:
- name of hierarchy
-
setName
Set the name of this repository. Note that once named, a repository cannot be rerenamed.- Specified by:
setNamein interfaceLoggerRepositoryEx- Parameters:
repoName- name of hierarchy
-
getProperties
Get the properties specific for this repository.- Specified by:
getPropertiesin interfaceLoggerRepositoryEx- Returns:
- property map.
-
getProperty
Get the property of this repository.- Specified by:
getPropertyin interfaceLoggerRepositoryEx- Parameters:
key- property key.- Returns:
- key value or null if not set.
-
setProperty
Set a property by key and value. The property will be shared by all events in this repository.- Specified by:
setPropertyin interfaceLoggerRepositoryEx- Parameters:
key- property namevalue- property value
-
setThreshold
The string form ofsetThreshold(Level).- Specified by:
setThresholdin interfaceorg.apache.log4j.spi.LoggerRepository- Parameters:
levelStr- symbolic name for level
-
setThreshold
public void setThreshold(org.apache.log4j.Level l) Enable logging for logging requests with levellor higher. By default all levels are enabled.- Specified by:
setThresholdin interfaceorg.apache.log4j.spi.LoggerRepository- Parameters:
l- The minimum level for which logging requests are sent to their appenders.
-
getPluginRegistry
Return the PluginRegisty for this LoggerRepository.- Specified by:
getPluginRegistryin interfaceLoggerRepositoryEx- Returns:
- plug in registry.
-
fireAddAppenderEvent
public void fireAddAppenderEvent(org.apache.log4j.Category logger, org.apache.log4j.Appender appender) Requests that a appender added event be sent to any registeredLoggerEventListener.- Specified by:
fireAddAppenderEventin interfaceorg.apache.log4j.spi.LoggerRepository- Parameters:
logger- The logger to which the appender was added.appender- The appender added to the logger.
-
fireRemoveAppenderEvent
public void fireRemoveAppenderEvent(org.apache.log4j.Category logger, org.apache.log4j.Appender appender) Requests that a appender removed event be sent to any registeredLoggerEventListener.- Specified by:
fireRemoveAppenderEventin interfaceLoggerRepositoryEx- Parameters:
logger- The logger from which the appender was removed.appender- The appender removed from the logger.
-
fireLevelChangedEvent
public void fireLevelChangedEvent(org.apache.log4j.Logger logger) Requests that a level changed event be sent to any registeredLoggerEventListener.- Specified by:
fireLevelChangedEventin interfaceLoggerRepositoryEx- Parameters:
logger- The logger which changed levels.
-
fireConfigurationChangedEvent
public void fireConfigurationChangedEvent()Requests that a configuration changed event be sent to any registeredLoggerRepositoryEventListener.- Specified by:
fireConfigurationChangedEventin interfaceLoggerRepositoryEx
-
getThreshold
public org.apache.log4j.Level getThreshold()Returns the current threshold.- Specified by:
getThresholdin interfaceorg.apache.log4j.spi.LoggerRepository- Returns:
- current threshold level
- Since:
- 1.2
-
getLogger
Return a new logger instance named as the first parameter using the default factory.If a logger of that name already exists, then it will be returned. Otherwise, a new logger will be instantiated and then linked with its existing ancestors as well as children.
- Specified by:
getLoggerin interfaceorg.apache.log4j.spi.LoggerRepository- Parameters:
loggerName- The name of the logger to retrieve.- Returns:
- logger
-
getLogger
public org.apache.log4j.Logger getLogger(String loggerName, org.apache.log4j.spi.LoggerFactory factory) Return a new logger instance named as the first parameter usingfactory.If a logger of that name already exists, then it will be returned. Otherwise, a new logger will be instantiated by the
factoryparameter and linked with its existing ancestors as well as children.- Specified by:
getLoggerin interfaceorg.apache.log4j.spi.LoggerRepository- Parameters:
loggerName- The name of the logger to retrieve.factory- The factory that will make the new logger instance.- Returns:
- logger
-
getCurrentLoggers
Returns all the currently defined categories in this hierarchy as anEnumeration.The root logger is not included in the returned
Enumeration.- Specified by:
getCurrentLoggersin interfaceorg.apache.log4j.spi.LoggerRepository- Returns:
- enumerator of current loggers
-
getErrorList
Return the the list of previously encouterederror items.- Specified by:
getErrorListin interfaceLoggerRepositoryEx- Returns:
- list of errors
-
addErrorItem
Add an error item to the list of previously encountered errors.- Specified by:
addErrorItemin interfaceLoggerRepositoryEx- Parameters:
errorItem- error to add to list of errors.
-
getCurrentCategories
Deprecated.Please usegetCurrentLoggers()instead.Get enumerator over current loggers.- Specified by:
getCurrentCategoriesin interfaceorg.apache.log4j.spi.LoggerRepository- Returns:
- enumerator over current loggers
-
getRendererMap
public org.apache.log4j.or.RendererMap getRendererMap()Get the renderer map for this hierarchy.- Specified by:
getRendererMapin interfaceorg.apache.log4j.spi.RendererSupport- Returns:
- renderer map
-
getRootLogger
public org.apache.log4j.Logger getRootLogger()Get the root of this hierarchy.- Specified by:
getRootLoggerin interfaceorg.apache.log4j.spi.LoggerRepository- Returns:
- root of hierarchy
- Since:
- 0.9.0
-
isDisabled
public boolean isDisabled(int level) This method will returntrueif this repository is disabled forlevelvalue passed as parameter andfalseotherwise. See also thethresholdmethod.- Specified by:
isDisabledin interfaceorg.apache.log4j.spi.LoggerRepository- Parameters:
level- numeric value for level.- Returns:
- true if disabled for specified level
-
resetConfiguration
public void resetConfiguration()Reset all values contained in this hierarchy instance to their default. This removes all appenders from all categories, sets the level of all non-root categories tonull, sets their additivity flag totrueand sets the level of the root logger to DEBUG. Moreover, message disabling is set its default "off" value.Existing categories are not removed. They are just reset.
This method should be used sparingly and with care as it will block all logging until it is completed.
- Specified by:
resetConfigurationin interfaceorg.apache.log4j.spi.LoggerRepository- Since:
- 0.8.5
-
setRenderer
Used by subclasses to add a renderer to the hierarchy passed as parameter.- Specified by:
setRendererin interfaceorg.apache.log4j.spi.RendererSupport- Parameters:
renderedClass- classrenderer- object used to render class.
-
isPristine
public boolean isPristine()Is the current configuration of the repository in its original (pristine) state?- Specified by:
isPristinein interfaceLoggerRepositoryEx- Returns:
- true if repository is in original state.
-
setPristine
public void setPristine(boolean state) Set the pristine flag.- Specified by:
setPristinein interfaceLoggerRepositoryEx- Parameters:
state- state- See Also:
-
shutdown
public void shutdown()Shutting down a hierarchy will safely close and remove all appenders in all categories including the root logger.Some appenders such as org.apache.log4j.net.SocketAppender and AsyncAppender need to be closed before the application exists. Otherwise, pending logging events might be lost.
The
shutdownmethod is careful to close nested appenders before closing regular appenders. This is allows configurations where a regular appender is attached to a logger and again to a nested appender.- Specified by:
shutdownin interfaceorg.apache.log4j.spi.LoggerRepository- Since:
- 1.0
-
getScheduler
Return this repository's own scheduler. The scheduler is lazily instantiated.- Specified by:
getSchedulerin interfaceLoggerRepositoryEx- Returns:
- this repository's own scheduler.
-
putObject
Puts object by key.- Specified by:
putObjectin interfaceLoggerRepositoryEx- Parameters:
key- key, may not be null.value- object to associate with key.
-
getObject
Get object by key.- Specified by:
getObjectin interfaceLoggerRepositoryEx- Parameters:
key- key, may not be null.- Returns:
- object associated with key or null.
-
setLoggerFactory
public void setLoggerFactory(org.apache.log4j.spi.LoggerFactory factory) Set logger factory.- Specified by:
setLoggerFactoryin interfaceLoggerRepositoryEx- Parameters:
factory- logger factory.
-
getLoggerFactory
public org.apache.log4j.spi.LoggerFactory getLoggerFactory()Get logger factory.- Specified by:
getLoggerFactoryin interfaceLoggerRepositoryEx- Returns:
- logger factory.
-
parseUnrecognizedElement
- Specified by:
parseUnrecognizedElementin interfaceorg.apache.log4j.xml.UnrecognizedElementHandler- Throws:
Exception
-