Class LoggerRepositoryExImpl
- java.lang.Object
-
- org.apache.log4j.LoggerRepositoryExImpl
-
- All Implemented Interfaces:
org.apache.log4j.spi.LoggerRepository,LoggerRepositoryEx,org.apache.log4j.spi.RendererSupport,org.apache.log4j.xml.UnrecognizedElementHandler
public final class LoggerRepositoryExImpl extends Object implements LoggerRepositoryEx, org.apache.log4j.spi.RendererSupport, org.apache.log4j.xml.UnrecognizedElementHandler
This class implements LoggerRepositoryEx by wrapping an existing LoggerRepository implementation and implementing the newly added capabilities.
-
-
Constructor Summary
Constructors Constructor Description LoggerRepositoryExImpl(org.apache.log4j.spi.LoggerRepository repository)Constructs a new logger hierarchy.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddErrorItem(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.voidaddLoggerRepositoryEventListener(LoggerRepositoryEventListener listener)Add aLoggerRepositoryEventListenerto the repository.voidemitNoAppenderWarning(org.apache.log4j.Category cat)Issue warning that there are no appenders in hierarchy.org.apache.log4j.Loggerexists(String loggerName)Check 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.voidfireConfigurationChangedEvent()Requests 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.EnumerationgetCurrentCategories()Deprecated.Please usegetCurrentLoggers()instead.EnumerationgetCurrentLoggers()Returns all the currently defined categories in this hierarchy as anEnumeration.List<ErrorItem>getErrorList()Return the the list of previously encouterederror items.org.apache.log4j.LoggergetLogger(String loggerName)Return a new logger instance named as the first parameter using the default factory.org.apache.log4j.LoggergetLogger(String loggerName, org.apache.log4j.spi.LoggerFactory factory)Return a new logger instance named as the first parameter usingfactory.org.apache.log4j.spi.LoggerFactorygetLoggerFactory()Get logger factory.StringgetName()Return the name of this hierarchy.ObjectgetObject(String key)Get object by key.PluginRegistrygetPluginRegistry()Return the PluginRegisty for this LoggerRepository.Map<String,String>getProperties()Get the properties specific for this repository.StringgetProperty(String key)Get the property of this repository.org.apache.log4j.or.RendererMapgetRendererMap()Get the renderer map for this hierarchy.org.apache.log4j.LoggergetRootLogger()Get the root of this hierarchy.SchedulergetScheduler()Return this repository's own scheduler.org.apache.log4j.LevelgetThreshold()Returns the current threshold.booleanisDisabled(int level)This method will returntrueif this repository is disabled forlevelvalue passed as parameter andfalseotherwise.booleanisPristine()Is the current configuration of the repository in its original (pristine) state?booleanparseUnrecognizedElement(Element element, Properties props)voidputObject(String key, Object value)Puts object by key.voidremoveLoggerEventListener(LoggerEventListener listener)Remove aLoggerEventListenerfrom the repository.voidremoveLoggerRepositoryEventListener(LoggerRepositoryEventListener listener)Remove aLoggerRepositoryEventListenerfrom the repository.voidresetConfiguration()Reset all values contained in this hierarchy instance to their default.voidsetLoggerFactory(org.apache.log4j.spi.LoggerFactory factory)Set logger factory.voidsetName(String repoName)Set 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.
-
-
-
Method Detail
-
addLoggerRepositoryEventListener
public void addLoggerRepositoryEventListener(LoggerRepositoryEventListener listener)
Add aLoggerRepositoryEventListenerto the repository. The listener will be called when repository events occur.- Specified by:
addLoggerRepositoryEventListenerin interfaceLoggerRepositoryEx- Parameters:
listener- listener
-
removeLoggerRepositoryEventListener
public void removeLoggerRepositoryEventListener(LoggerRepositoryEventListener listener)
Remove aLoggerRepositoryEventListenerfrom the repository.- Specified by:
removeLoggerRepositoryEventListenerin interfaceLoggerRepositoryEx- Parameters:
listener- listener
-
addLoggerEventListener
public void addLoggerEventListener(LoggerEventListener listener)
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
public void removeLoggerEventListener(LoggerEventListener listener)
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
public org.apache.log4j.Logger exists(String loggerName)
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
public String getName()
Return the name of this hierarchy.- Specified by:
getNamein interfaceLoggerRepositoryEx- Returns:
- name of hierarchy
-
setName
public void setName(String repoName)
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
public Map<String,String> getProperties()
Get the properties specific for this repository.- Specified by:
getPropertiesin interfaceLoggerRepositoryEx- Returns:
- property map.
-
getProperty
public String getProperty(String key)
Get the property of this repository.- Specified by:
getPropertyin interfaceLoggerRepositoryEx- Parameters:
key- property key.- Returns:
- key value or null if not set.
-
setProperty
public void setProperty(String key, String value)
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
public void setThreshold(String levelStr)
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
public PluginRegistry 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
public org.apache.log4j.Logger getLogger(String loggerName)
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
public Enumeration 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
public List<ErrorItem> getErrorList()
Return the the list of previously encouterederror items.- Specified by:
getErrorListin interfaceLoggerRepositoryEx- Returns:
- list of errors
-
addErrorItem
public void addErrorItem(ErrorItem errorItem)
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
public Enumeration 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
public void setRenderer(Class renderedClass, org.apache.log4j.or.ObjectRenderer renderer)
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:
LoggerRepositoryEx.isPristine()
-
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
public Scheduler getScheduler()
Return this repository's own scheduler. The scheduler is lazily instantiated.- Specified by:
getSchedulerin interfaceLoggerRepositoryEx- Returns:
- this repository's own scheduler.
-
putObject
public void putObject(String key, Object value)
Puts object by key.- Specified by:
putObjectin interfaceLoggerRepositoryEx- Parameters:
key- key, may not be null.value- object to associate with key.
-
getObject
public Object getObject(String key)
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
public boolean parseUnrecognizedElement(Element element, Properties props) throws Exception
- Specified by:
parseUnrecognizedElementin interfaceorg.apache.log4j.xml.UnrecognizedElementHandler- Throws:
Exception
-
-