org.apache.avalon.excalibur.logger.decorator
Class LoggerManagerDecorator

java.lang.Object
  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.*:

    LogEnabled
    Contextualizable
    Configurable
    Startable
    Disposable
 
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.

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

Field Summary
protected  LoggerManager m_loggerManager
          The wrapped-in LoggerManager.
 
Fields inherited from interface org.apache.avalon.excalibur.logger.LoggerManager
ROLE
 
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

m_loggerManager

protected final LoggerManager m_loggerManager
The wrapped-in LoggerManager.

Constructor Detail

LoggerManagerDecorator

public LoggerManagerDecorator(LoggerManager loggerManager)
Method Detail

enableLogging

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

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

contextualize

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
Parameters:
context - the context. Must not be null.
Throws:
ContextException - if context is invalid

configure

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
Parameters:
configuration - the class configurations. Must not be null.
Throws:
ConfigurationException - if an error occurs

start

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

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

stop

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

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

dispose

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

getLoggerForCategory

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

Specified by:
getLoggerForCategory in interface LoggerManager

getDefaultLogger

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.