org.apache.log

Class Hierarchy


public class Hierarchy
extends java.lang.Object

This class encapsulates a basic independent log hierarchy. The hierarchy is essentially a safe wrapper around root logger.
Authors:
Avalon Development Team
Peter Donald

Nested Class Summary

private class
Hierarchy.InnerErrorHandler
private class
Hierarchy.InnerLoggerListener
Inner class to redirect to hierarchys real LoggerListener if any.

Field Summary

static String
DEFAULT_FORMAT
private static Hierarchy
c_hierarchy
private ErrorHandler
m_errorHandler
private LoggerListener
m_loggerListener
private Logger
m_rootLogger

Constructor Summary

Hierarchy()
Create a hierarchy object.

Method Summary

void
addLoggerListener(LoggerListener loggerListener)
Set the LoggerListener associated with hierarchy.
static Hierarchy
getDefaultHierarchy()
Retrieve the default hierarchy.
Logger
getLoggerFor(String category)
Retrieve a logger for named category.
Logger
getRootLogger()
Utility method to retrieve logger for hierarchy.
private void
notifyLoggerCreated(String category, Logger logger)
Notify logger listener (if any) that a new logger was created.
void
removeLoggerListener(LoggerListener loggerListener)
Remove the LoggerListener associated with hierarchy.
void
setDefaultLogTarget(LogTarget target)
Set the default log target for hierarchy.
void
setDefaultLogTargets(LogTarget[] targets)
Set the default log targets for this hierarchy.
void
setDefaultPriority(Priority priority)
Set the default priority for hierarchy.
void
setErrorHandler(ErrorHandler errorHandler)
Set the ErrorHandler associated with hierarchy.

Field Details

DEFAULT_FORMAT

public static final String DEFAULT_FORMAT

c_hierarchy

private static final Hierarchy c_hierarchy

m_errorHandler

private ErrorHandler m_errorHandler

m_loggerListener

private LoggerListener m_loggerListener

m_rootLogger

private Logger m_rootLogger

Constructor Details

Hierarchy

public Hierarchy()
Create a hierarchy object. The default LogTarget writes to stdout.

Method Details

addLoggerListener

public void addLoggerListener(LoggerListener loggerListener)
Set the LoggerListener associated with hierarchy. This is a unicast listener, so only one LoggerListener is allowed.
Parameters:
loggerListener - the LoggerListener

getDefaultHierarchy

public static Hierarchy getDefaultHierarchy()
Retrieve the default hierarchy.

In most cases the default LogHierarchy is the only one used in an application. However when security is a concern or multiple independent applications will be running in same JVM it is advantageous to create new Hierarchies rather than reuse default.

Returns:
the default Hierarchy

getLoggerFor

public Logger getLoggerFor(String category)
Retrieve a logger for named category.
Parameters:
category - the context
Returns:
the Logger

getRootLogger

public final Logger getRootLogger()
Utility method to retrieve logger for hierarchy. This method is intended for use by sub-classes which can take responsibility for manipulating Logger directly.
Returns:
the Logger

notifyLoggerCreated

private void notifyLoggerCreated(String category,
                                 Logger logger)
Notify logger listener (if any) that a new logger was created.
Parameters:
category - the category of new logger
logger - the logger

removeLoggerListener

public void removeLoggerListener(LoggerListener loggerListener)
Remove the LoggerListener associated with hierarchy. Perform this step before adding a new one if you want to change it.
Parameters:
loggerListener - the LoggerListener

setDefaultLogTarget

public void setDefaultLogTarget(LogTarget target)
Set the default log target for hierarchy. This is the target inherited by loggers if no other target is specified.
Parameters:
target - the default target

setDefaultLogTargets

public void setDefaultLogTargets(LogTarget[] targets)
Set the default log targets for this hierarchy. These are the targets inherited by loggers if no other targets are specified
Parameters:
targets - the default targets

setDefaultPriority

public void setDefaultPriority(Priority priority)
Set the default priority for hierarchy. This is the priority inherited by loggers if no other priority is specified.
Parameters:
priority - the default priority

setErrorHandler

public void setErrorHandler(ErrorHandler errorHandler)
Set the ErrorHandler associated with hierarchy.
Parameters:
errorHandler - the ErrorHandler