org.apache.commons.logging
public abstract class LogFactory extends Object
Factory for creating Log instances, with discovery and configuration features similar to that employed by standard Java APIs such as JAXP.
IMPLEMENTATION NOTE - This implementation is heavily based on the SAXParserFactory and DocumentBuilderFactory implementations (corresponding to the JAXP pluggability APIs) found in Apache Xerces.
Version: $Revision: 1.27 $ $Date: 2004/06/06 21:15:12 $
Field Summary | |
---|---|
protected static Hashtable | factories
The previously constructed LogFactory instances, keyed by
the ClassLoader with which it was created. |
static String | FACTORY_DEFAULT
The fully qualified class name of the fallback LogFactory
implementation class to use, if no other can be found. |
static String | FACTORY_PROPERTIES
The name of the properties file to search for. |
static String | FACTORY_PROPERTY
The name of the property used to identify the LogFactory implementation
class name. |
protected static String | SERVICE_ID
JDK1.3+
'Service Provider' specification.
|
Constructor Summary | |
---|---|
protected | LogFactory()
Protected constructor that is not available for public use. |
Method Summary | |
---|---|
static void | cacheFactory(ClassLoader classLoader, LogFactory factory) |
abstract Object | getAttribute(String name)
Return the configuration attribute with the specified name (if any),
or null if there is no such attribute.
|
abstract String[] | getAttributeNames()
Return an array containing the names of all currently defined
configuration attributes. |
static LogFactory | getCachedFactory(ClassLoader contextClassLoader)
Check cached factories (keyed by contextClassLoader) |
protected static ClassLoader | getContextClassLoader()
Return the thread context class loader if available.
|
static LogFactory | getFactory() Construct (if necessary) and return a
|
abstract Log | getInstance(Class clazz)
Convenience method to derive a name from the specified class and
call getInstance(String) with it.
|
abstract Log | getInstance(String name) Construct (if necessary) and return a NOTE - Depending upon the implementation of
the |
static Log | getLog(Class clazz)
Convenience method to return a named logger, without the application
having to care about factories.
|
static Log | getLog(String name)
Convenience method to return a named logger, without the application
having to care about factories.
|
static InputStream | getResourceAsStream(ClassLoader loader, String name) |
protected static LogFactory | newFactory(String factoryClass, ClassLoader classLoader)
Return a new instance of the specified LogFactory
implementation class, loaded by the specified class loader.
|
abstract void | release()
Release any internal references to previously created Log
instances returned by this factory. |
static void | release(ClassLoader classLoader)
Release any internal references to previously created LogFactory
instances that have been associated with the specified class loader
(if any), after calling the instance method release() on
each of them.
|
static void | releaseAll()
Release any internal references to previously created LogFactory
instances, after calling the instance method release() on
each of them. |
abstract void | removeAttribute(String name)
Remove any configuration attribute associated with the specified name.
|
abstract void | setAttribute(String name, Object value)
Set the configuration attribute with the specified name. |
LogFactory
instances, keyed by
the ClassLoader
with which it was created.LogFactory
implementation class to use, if no other can be found.null
if there is no such attribute.
Parameters: name Name of the attribute to return
Throws: LogConfigurationException if a suitable class loader cannot be identified.
Construct (if necessary) and return a LogFactory
instance, using the following ordered lookup procedure to determine
the name of the implementation class to be loaded.
org.apache.commons.logging.LogFactory
system
property.commons-logging.properties
file, if found in the class path of this class. The configuration
file is in standard java.util.Properties
format and
contains the fully qualified name of the implementation class
with the key being the system property defined above.org.apache.commons.logging.impl.LogFactoryImpl
).NOTE - If the properties file method of identifying the
LogFactory
implementation class is utilized, all of the
properties defined in this file will be set as configuration attributes
on the corresponding LogFactory
instance.
Throws: LogConfigurationException if the implementation class is not available or cannot be instantiated.
getInstance(String)
with it.
Parameters: clazz Class for which a suitable Log name will be derived
Throws: LogConfigurationException if a suitable Log
instance cannot be returned
Construct (if necessary) and return a Log
instance,
using the factory's current set of configuration attributes.
NOTE - Depending upon the implementation of
the LogFactory
you are using, the Log
instance you are returned may or may not be local to the current
application, and may or may not be returned again on a subsequent
call with the same name argument.
Parameters: name Logical name of the Log
instance to be
returned (the meaning of this name is only known to the underlying
logging implementation that is being wrapped)
Throws: LogConfigurationException if a suitable Log
instance cannot be returned
Parameters: clazz Class from which a log name will be derived
Throws: LogConfigurationException if a suitable Log
instance cannot be returned
Parameters: name Logical name of the Log
instance to be
returned (the meaning of this name is only known to the underlying
logging implementation that is being wrapped)
Throws: LogConfigurationException if a suitable Log
instance cannot be returned
LogFactory
implementation class, loaded by the specified class loader.
If that fails, try the class loader used to load this
(abstract) LogFactory.
Parameters: factoryClass Fully qualified name of the LogFactory
implementation class classLoader ClassLoader from which to load this class
Throws: LogConfigurationException if a suitable instance cannot be created
release()
on
each of them.
Parameters: classLoader ClassLoader for which to release the LogFactory
release()
on
each of them. This is useful in environments like servlet containers,
which implement application reloading by throwing away a ClassLoader.
Dangling references to objects in that class loader would prevent
garbage collection.Parameters: name Name of the attribute to remove
null
value is equivalent to calling
removeAttribute(name)
.
Parameters: name Name of the attribute to set value Value of the attribute to set, or null
to remove any setting for this attribute