public abstract class AbstractLoggerManager extends java.lang.Object implements org.apache.avalon.framework.logger.LogEnabled, LoggerManager
getLogger() and live with it.
The Logger supplied via enableLogging
will be used both as the "initial" and as the "fallback" logger.
start() the messages logger via
getLogger().xxx() will go to this loggerstart
a recursive invocation of getLogger().xxx() will be detected
the message will be logged via the initial logger as a fallback.LoggerSwitch for
more details.| Modifier and Type | Field and Description |
|---|---|
private org.apache.avalon.framework.logger.Logger |
m_defaultLoggerOverride
The logger used to be returned from
getDefaultLogger()
and getLoggerForCategory(""),
if one has been forcibly set via a constructor. |
private boolean |
m_enableLoggingInvoked
safeguards against double
enableLogging() invocation. |
private org.apache.avalon.framework.logger.Logger |
m_logger
Always equals to m_switch.get()
|
protected java.util.Map |
m_loggers
Map for name to logger mapping.
|
protected java.lang.String |
m_prefix
The root logger to configure
|
private boolean |
m_startInvoked
safeguards against double
start() invocation. |
private LoggerSwitch |
m_switch
The object that wraps a swithing logger.
|
private java.lang.String |
m_switchTo
category we should switch our own loggin to
on
start(). |
ROLE| Constructor and Description |
|---|
AbstractLoggerManager(java.lang.String prefix,
java.lang.String switchTo,
org.apache.avalon.framework.logger.Logger defaultLoggerOverride)
Initializes AbstractLoggerManager.
|
| Modifier and Type | Method and Description |
|---|---|
protected abstract org.apache.avalon.framework.logger.Logger |
doGetLoggerForCategory(java.lang.String fullCategoryName)
Actually create a logger wrapping underlying logger
backed implementation for a give category.
|
void |
enableLogging(org.apache.avalon.framework.logger.Logger fallbackLogger)
Accept the logger we shall use as the initial and the fallback logger.
|
org.apache.avalon.framework.logger.Logger |
getDefaultLogger()
Retruns the logger for the
"" category. |
protected org.apache.avalon.framework.logger.Logger |
getLogger()
Derived LoggerManager implementations should obtain
a logger to log their own messages via this call.
|
org.apache.avalon.framework.logger.Logger |
getLoggerForCategory(java.lang.String categoryName)
Retrieves a Logger from a category name.
|
void |
start()
Get a logger from ourselves and pass it to
m_switch. |
void |
stop()
Startable.stop() empty implementation.
|
protected final java.util.Map m_loggers
protected java.lang.String m_prefix
private LoggerSwitch m_switch
private org.apache.avalon.framework.logger.Logger m_logger
private java.lang.String m_switchTo
start().private boolean m_enableLoggingInvoked
enableLogging() invocation.private boolean m_startInvoked
start() invocation.private final org.apache.avalon.framework.logger.Logger m_defaultLoggerOverride
getDefaultLogger()
and getLoggerForCategory(""),
if one has been forcibly set via a constructor.public AbstractLoggerManager(java.lang.String prefix,
java.lang.String switchTo,
org.apache.avalon.framework.logger.Logger defaultLoggerOverride)
prefix - the prefix to prepended to the category name
on each invocation of getLoggerForCategory before
passing the category name on to the underlying logging
system (currently LogKit or Log4J).switchTo - fuel for the start() method;
if null start() will do nothing;
if empty start() will switch to
getLoggerForCategory("").protected org.apache.avalon.framework.logger.Logger getLogger()
public void enableLogging(org.apache.avalon.framework.logger.Logger fallbackLogger)
enableLogging in interface org.apache.avalon.framework.logger.LogEnabledpublic void start()
m_switch.public void stop()
public final org.apache.avalon.framework.logger.Logger getDefaultLogger()
"" category.getDefaultLogger in interface LoggerManagerprotected abstract org.apache.avalon.framework.logger.Logger doGetLoggerForCategory(java.lang.String fullCategoryName)
public final org.apache.avalon.framework.logger.Logger getLoggerForCategory(java.lang.String categoryName)
getLoggerForCategory in interface LoggerManager