org.picocontainer.gems.monitors
Class Slf4jComponentMonitor

java.lang.Object
  extended by org.picocontainer.gems.monitors.Slf4jComponentMonitor
All Implemented Interfaces:
Serializable, ComponentMonitor

public class Slf4jComponentMonitor
extends Object
implements ComponentMonitor, Serializable

A ComponentMonitor which writes to a Slf4j Logger instance. The Logger instance can either be injected or, if not set, the LoggerFactory will be used to retrieve it at every invocation of the monitor.

Author:
Paul Hammant, Mauro Talevi, Michael Rimov
See Also:
Serialized Form

Field Summary
 
Fields inherited from interface org.picocontainer.ComponentMonitor
KEEP
 
Constructor Summary
Slf4jComponentMonitor()
          Creates a Slf4jComponentMonitor with no Logger instance set.
Slf4jComponentMonitor(Class<?> loggerClass)
          Creates a Slf4jComponentMonitor with a given Logger instance class.
Slf4jComponentMonitor(Class<?> loggerClass, ComponentMonitor delegate)
          Creates a Slf4jComponentMonitor with a given Logger instance class.
Slf4jComponentMonitor(ComponentMonitor delegate)
          Similar to default constructor behavior, but this version wraps a delegate ComponentMonitor.
Slf4jComponentMonitor(org.slf4j.Logger logger)
          Creates a Slf4jComponentMonitor with a given Logger instance
Slf4jComponentMonitor(org.slf4j.Logger logger, ComponentMonitor delegate)
          Creates a Slf4jComponentMonitor with a given Slf4j Logger instance
Slf4jComponentMonitor(String loggerName)
          Creates a Slf4jComponentMonitor with a given Logger instance name.
Slf4jComponentMonitor(String loggerName, ComponentMonitor delegate)
          Creates a Slf4jComponentMonitor with a given Logger instance name.
 
Method Summary
protected  org.slf4j.Logger getLogger(Member member)
          Retrieves the logger factory based class being instantiated.
<T> void
instantiated(PicoContainer container, ComponentAdapter<T> componentAdapter, Constructor<T> constructor, Object instantiated, Object[] parameters, long duration)
           *
<T> Constructor<T>
instantiating(PicoContainer container, ComponentAdapter<T> componentAdapter, Constructor<T> constructor)
           *
<T> void
instantiationFailed(PicoContainer container, ComponentAdapter<T> componentAdapter, Constructor<T> constructor, Exception cause)
           *
 void invocationFailed(Member member, Object instance, Exception cause)
           *
 void invoked(PicoContainer container, ComponentAdapter<?> componentAdapter, Member member, Object instance, long duration, Object[] args, Object retVal)
           *
 Object invoking(PicoContainer container, ComponentAdapter<?> componentAdapter, Member member, Object instance, Object[] args)
           *
 void lifecycleInvocationFailed(MutablePicoContainer container, ComponentAdapter<?> componentAdapter, Method method, Object instance, RuntimeException cause)
           *
 Behavior newBehavior(Behavior behavior)
          
 Injector newInjector(Injector injector)
          
 Object noComponentFound(MutablePicoContainer container, Object componentKey)
           *
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Slf4jComponentMonitor

public Slf4jComponentMonitor()
Creates a Slf4jComponentMonitor with no Logger instance set. The LoggerFactory will be used to retrieve the Logger instance at every invocation of the monitor.


Slf4jComponentMonitor

public Slf4jComponentMonitor(Class<?> loggerClass)
Creates a Slf4jComponentMonitor with a given Logger instance class. The class name is used to retrieve the Logger instance.

Parameters:
loggerClass - the class of the Logger

Slf4jComponentMonitor

public Slf4jComponentMonitor(String loggerName)
Creates a Slf4jComponentMonitor with a given Logger instance name. It uses the LoggerFactory to create the Logger instance.

Parameters:
loggerName - the name of the Log

Slf4jComponentMonitor

public Slf4jComponentMonitor(org.slf4j.Logger logger)
Creates a Slf4jComponentMonitor with a given Logger instance

Parameters:
logger - the Logger to write to

Slf4jComponentMonitor

public Slf4jComponentMonitor(Class<?> loggerClass,
                             ComponentMonitor delegate)
Creates a Slf4jComponentMonitor with a given Logger instance class. The class name is used to retrieve the Logger instance.

Parameters:
loggerClass - the class of the Logger
delegate - the delegate

Slf4jComponentMonitor

public Slf4jComponentMonitor(String loggerName,
                             ComponentMonitor delegate)
Creates a Slf4jComponentMonitor with a given Logger instance name. It uses the LoggerFactory to create the Logger instance.

Parameters:
loggerName - the name of the Log
delegate - the delegate

Slf4jComponentMonitor

public Slf4jComponentMonitor(org.slf4j.Logger logger,
                             ComponentMonitor delegate)
Creates a Slf4jComponentMonitor with a given Slf4j Logger instance

Parameters:
logger - the Logger to write to
delegate - the delegate

Slf4jComponentMonitor

public Slf4jComponentMonitor(ComponentMonitor delegate)
Similar to default constructor behavior, but this version wraps a delegate ComponentMonitor.

Parameters:
delegate - The next component monitor in the chain.
Method Detail

instantiating

public <T> Constructor<T> instantiating(PicoContainer container,
                                        ComponentAdapter<T> componentAdapter,
                                        Constructor<T> constructor)
*

Specified by:
instantiating in interface ComponentMonitor

instantiated

public <T> void instantiated(PicoContainer container,
                             ComponentAdapter<T> componentAdapter,
                             Constructor<T> constructor,
                             Object instantiated,
                             Object[] parameters,
                             long duration)
*

Specified by:
instantiated in interface ComponentMonitor

instantiationFailed

public <T> void instantiationFailed(PicoContainer container,
                                    ComponentAdapter<T> componentAdapter,
                                    Constructor<T> constructor,
                                    Exception cause)
*

Specified by:
instantiationFailed in interface ComponentMonitor

invoking

public Object invoking(PicoContainer container,
                       ComponentAdapter<?> componentAdapter,
                       Member member,
                       Object instance,
                       Object[] args)
*

Specified by:
invoking in interface ComponentMonitor

invoked

public void invoked(PicoContainer container,
                    ComponentAdapter<?> componentAdapter,
                    Member member,
                    Object instance,
                    long duration,
                    Object[] args,
                    Object retVal)
*

Specified by:
invoked in interface ComponentMonitor

invocationFailed

public void invocationFailed(Member member,
                             Object instance,
                             Exception cause)
*

Specified by:
invocationFailed in interface ComponentMonitor

lifecycleInvocationFailed

public void lifecycleInvocationFailed(MutablePicoContainer container,
                                      ComponentAdapter<?> componentAdapter,
                                      Method method,
                                      Object instance,
                                      RuntimeException cause)
*

Specified by:
lifecycleInvocationFailed in interface ComponentMonitor

noComponentFound

public Object noComponentFound(MutablePicoContainer container,
                               Object componentKey)
*

Specified by:
noComponentFound in interface ComponentMonitor

newInjector

public Injector newInjector(Injector injector)

Specified by:
newInjector in interface ComponentMonitor

newBehavior

public Behavior newBehavior(Behavior behavior)

Specified by:
newBehavior in interface ComponentMonitor

getLogger

protected org.slf4j.Logger getLogger(Member member)
Retrieves the logger factory based class being instantiated.

Parameters:
member - Source method/constructor, etc being instantiated.
Returns:
an appropriate logger instance for this callback.


Copyright © 2003-2010 Codehaus. All Rights Reserved.