Class LoggerManagerDecorator

  extended byorg.apache.avalon.excalibur.logger.decorator.LoggerManagerDecorator
All Implemented Interfaces:
Configurable, Contextualizable, Disposable, LogEnabled, LoggerManager, Startable
Direct Known Subclasses:
CachingDecorator, LogToSelfDecorator, OverrideDefaultDecorator, PrefixDecorator

public abstract class LoggerManagerDecorator
extends java.lang.Object
implements LoggerManager, LogEnabled, Contextualizable, Configurable, Startable, Disposable

This is the base class to create LoggerManager decorators. It passes all lifecycle and LoggerManagerc calls onto the wrapped object.

Decorators are expected to be slim - be able to run for instance both with and without having their enableLogging() method called.

This constraint is imposed to allow decorators to be applicable to an object both at its burth, like

 C c = new C();
 DecoratorX d = new DecoratorX( c );
 x.enableLogging( logger );
and after the object has been completely configured
 C c = (C)manager.lookup( C.ROLE );
 DecoratorX d = new DecoratorX( c );
If this constrianed is not obeyed this should be clearly stated in the javadocs. For instance, LogToSelfDecorator _only_ makes sense if it passes the enableLogging call through it.

This implementation is incomplete, it passes only those calls that are needed in org.apache.avalon.excalibur.logger.decorator.* and org.apache.avalon.excalibur.logger.adapter.*:

This object differes from LoggerManagerTee by being abstract, by absence of addTee() public method and by implementation. LoggerManagerTee might be used instead of this but maintaining it as a separate class seemed cleaner.

CVS $Revision: 1.4 $ $Date: 2004/03/10 13:54:50 $
Avalon Development Team

Field Summary
protected  LoggerManager m_loggerManager
          The wrapped-in LoggerManager.
Fields inherited from interface org.apache.avalon.excalibur.logger.LoggerManager
Constructor Summary
LoggerManagerDecorator(LoggerManager loggerManager)
Method Summary
 void configure(Configuration configuration)
          Pass the Configuration to the Configurable class.
 void contextualize(Context context)
          Pass the Context to the component.
 void dispose()
          The dispose operation is called at the end of a components lifecycle.
 void enableLogging(Logger logger)
          Provide component with a logger.
 Logger getDefaultLogger()
          Return the default Logger.
 Logger getLoggerForCategory(java.lang.String categoryName)
          Return the Logger for the specified category.
 void start()
          Starts the component.
 void stop()
          Stops the component.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail


protected final LoggerManager m_loggerManager
The wrapped-in LoggerManager.

Constructor Detail


public LoggerManagerDecorator(LoggerManager loggerManager)
Method Detail


public void enableLogging(Logger logger)
Description copied from interface: LogEnabled
Provide component with a logger.

Specified by:
enableLogging in interface LogEnabled
logger - the logger. Must not be null.


public void contextualize(Context context)
                   throws ContextException
Description copied from interface: Contextualizable
Pass the Context to the component. This method is called after the LogEnabled.enableLogging( Logger ) (if present) method and before any other method.

Specified by:
contextualize in interface Contextualizable
context - the context. Must not be null.
ContextException - if context is invalid


public void configure(Configuration configuration)
               throws ConfigurationException
Description copied from interface: Configurable
Pass the Configuration to the Configurable class.

Specified by:
configure in interface Configurable
configuration - the class configurations. Must not be null.
ConfigurationException - if an error occurs


public void start()
           throws java.lang.Exception
Description copied from interface: Startable
Starts the component.

Specified by:
start in interface Startable
java.lang.Exception - if Component can not be started


public void stop()
          throws java.lang.Exception
Description copied from interface: Startable
Stops the component.

Specified by:
stop in interface Startable
java.lang.Exception - if the Component can not be Stopped.


public void dispose()
Description copied from interface: Disposable
The dispose operation is called at the end of a components lifecycle. This method will be called after Startable.stop() method (if implemented by component). Components use this method to release and destroy any resources that the Component owns.

Specified by:
dispose in interface Disposable


public Logger getLoggerForCategory(java.lang.String categoryName)
Return the Logger for the specified category.

Specified by:
getLoggerForCategory in interface LoggerManager


public Logger getDefaultLogger()
Return the default Logger. This is basically the same as getting the Logger for the "" category.

Specified by:
getDefaultLogger in interface LoggerManager

Copyright © 1997-2005 The Apache Software Foundation. All Rights Reserved.