public class LogToSelfDecorator extends LoggerManagerDecorator
enableLogging() and substibutes it
by LoggerSwitch.get() logger.
Later on at the start() stage
we assume that our wrapped LoggerManager has already
completely initialized itself and extract
a Logger from it.
LoggerSwitch allowes us to supply this
logger to it via LoggerSwitch.setPreferred().
This has the effect of all the log messages directed
to LoggerSwitch.get() obtained logger
being directed to the new Logger unless
a recursion error happens.
| Modifier and Type | Field and Description |
|---|---|
private org.apache.avalon.framework.logger.Logger |
m_logger
Our substitute logger obtained from m_switch.
|
private LoggerSwitch |
m_switch |
private java.lang.String |
m_switchTo |
m_loggerManagerROLE| Constructor and Description |
|---|
LogToSelfDecorator(LoggerManager loggerManager,
java.lang.String switchTo)
Creates a LogToSelfDecorator instance.
|
| Modifier and Type | Method and Description |
|---|---|
void |
enableLogging(org.apache.avalon.framework.logger.Logger logger)
Substitutes the supplied logger by
m_switch.get(). |
void |
start()
Invokes
start() on our wrapped
LoggerManager and swithces the
logger used by us and all objects that we
decorate for a logger extracted from our
wrapped LoggerManager. |
configure, contextualize, dispose, getDefaultLogger, getLoggerForCategory, stopprivate final java.lang.String m_switchTo
private LoggerSwitch m_switch
private org.apache.avalon.framework.logger.Logger m_logger
public LogToSelfDecorator(LoggerManager loggerManager, java.lang.String switchTo)
switchTo - the name of the category we should extract
a Logger and switch our logging to at the
start() stage; can not be null;
empty value causes logging to be switched to the
"" category.public void enableLogging(org.apache.avalon.framework.logger.Logger logger)
m_switch.get().
The substiting logger is used both for our own logging and
passed onto our decorated LoggerManager.enableLogging in interface org.apache.avalon.framework.logger.LogEnabledenableLogging in class LoggerManagerDecoratorlogger - the logger supplied for us and our wrapped
LoggerManager; we chould survive with a null logger
(LoggerSwitch create a NullLogger in this case), but
for better error detection we shall rather blow up.public void start()
throws java.lang.Exception
start() on our wrapped
LoggerManager and swithces the
logger used by us and all objects that we
decorate for a logger extracted from our
wrapped LoggerManager.start in interface org.apache.avalon.framework.activity.Startablestart in class LoggerManagerDecoratorjava.lang.Exception