org.objectweb.util.monolog.wrapper.log4j
Class MonologCategory

java.lang.Object
  extended byorg.apache.log4j.Category
      extended byorg.apache.log4j.Logger
          extended byorg.objectweb.util.monolog.wrapper.log4j.MonologCategory
All Implemented Interfaces:
org.apache.log4j.spi.AppenderAttachable, Handler, Logger, TopicalLogger

public class MonologCategory
extends org.apache.log4j.Logger
implements TopicalLogger

This class wraps the Logger concept into the log4j world. This class extends therefore the Logger class. This implementation supports

Author:
Sebastien Chassande-Barrioz

Nested Class Summary
 class MonologCategory.BetaCF
           
 class MonologCategory.OwPriority
           
 
Field Summary
protected  java.util.ArrayList appenders
          This field references all appenders associated to the current Logger
protected  org.apache.log4j.Logger categ
          This field references the inner Logger if the delegation was choosen.
protected  byte depth
           
protected static int DISABLE_OFF
           
protected static int DISABLE_ON
           
protected  boolean enable
           
protected  MonologCategory.OwPriority interPriority
           
protected  java.util.HashMap topicToparents
          This field references all parent of this Logger.
 
Fields inherited from class org.apache.log4j.Category
additive, level, name, parent, repository, resourceBundle
 
Fields inherited from interface org.objectweb.util.monolog.api.Handler
APPEND_MODE_ATTRIBUTE, BUFFER_ATTRIBUTE, CONSOLE_HANDLER_TYPE, FILE_HANDLER_TYPE, FILE_NUMBER_ATTRIBUTE, GENERIC_HANDLER_TYPE, JMX_HANDLER_TYPE, LEVEL_ATTRIBUTE, LOGGER_HANDLER_TYPE, MAX_SIZE_ATTRIBUTE, OUTPUT_ATTRIBUTE, PATTERN_ATTRIBUTE, ROLLING_FILE_HANDLER_TYPE
 
Constructor Summary
MonologCategory(org.apache.log4j.Logger c)
          This constructor initializes the instance in delegation mode.
MonologCategory(java.lang.String _initialName)
          This constructor initializes the instance in inheritance mode.
 
Method Summary
 void addHandler(Handler h)
          Add a handler in the Handler list of the topicalLogger
 void addTopic(java.lang.String topic)
          Add a topic to the topicalLogger
 void callAppenders(org.apache.log4j.spi.LoggingEvent event)
          In inheritance mode this method delegates the treatment to the other callAppendes methods.
 boolean callAppenders(org.apache.log4j.spi.LoggingEvent event, boolean called)
          This method calls all the parent loggers and call its appender either the followin condition: if the called parameter is equals to true then all parent are call with the same value, and the logging event are transmitted to the appenders.
static java.lang.String format(java.lang.String msg, int removeTopStack)
          It formats a message by adding the object and the method name where the call to monolog was done.
 java.lang.Object getAttribute(java.lang.String name)
          It retrieves the value of an attribute value of the handler.
 java.lang.String[] getAttributeNames()
          It retrieves the attributes of the handler
 org.apache.log4j.Level getChainedLevel()
          Starting from this Logger, search the Logger hierarchy for a non-null priority and return it.
 int getCurrentIntLevel()
          Return the current Level of the logger
 Level getCurrentLevel()
          Returns the current level value under the Level format
 Handler[] getHandler()
          It returns the list of the handler associated to this logger.
 Handler getHandler(java.lang.String hn)
          It returns the handler which the name is equals to the parameter
 java.lang.String[] getTopic()
          Returns the list of the different names of the topicalLogger
 java.util.Enumeration getTopics()
          Returns the list of the different names of the topicalLogger
 java.lang.String getType()
          It retrieves the Handler type
 boolean isLoggable(int level)
          Check if the level parameter are not filtered by the logger
 boolean isLoggable(Level l)
          Check if a message of the given level would actually be logged by this logger.
 boolean isOn()
          Is the handler enabled
 void log(int level, java.lang.Object o)
          Log an object with a specific level.
 void log(int level, java.lang.Object o, java.lang.Object location, java.lang.Object method)
          Log an object and a trowable with a specific level.
 void log(int level, java.lang.Object o, java.lang.Throwable t)
          Log an object and a trowable with a specific level.
 void log(int level, java.lang.Object o, java.lang.Throwable t, java.lang.Object location, java.lang.Object method)
          Log an object and a trowable with a specific level.
 void log(Level l, java.lang.Object o)
          Log a message, with no arguments.
 void log(Level l, java.lang.Object o, java.lang.Object location, java.lang.Object method)
          Log a message, with a location and method arguments.
 void log(Level l, java.lang.Object o, java.lang.Throwable t)
          Log a message, with a throwable arguments which can represent an error or a context..
 void log(Level l, java.lang.Object o, java.lang.Throwable t, java.lang.Object location, java.lang.Object method)
          Log a message, with a location, method and throwable arguments.
 void removeAllHandlers()
          A TopicalLogger manages a list of Handler instances.
 void removeHandler(Handler h)
          Remove a handler from the Handler list of the topicalLogger
 void removeTopic(java.lang.String topic)
          Remove a topic from the topicalLogger
 java.lang.Object setAttribute(java.lang.String name, java.lang.Object value)
          It assigns an attributte to the handler.
 void setIntLevel(int level)
          Set the current level of the logger
 void setLevel(Level l)
          Permits to set the level with a Level instance.
 void setName(java.lang.String n)
          It assigns the name of the handler
 void turnOff()
          Disable the handler
 void turnOn()
          Enable the handler
 
Methods inherited from class org.apache.log4j.Logger
getLogger, getLogger, getLogger, getRootLogger
 
Methods inherited from class org.apache.log4j.Category
addAppender, assertLog, debug, debug, error, error, exists, fatal, fatal, forcedLog, getAdditivity, getAllAppenders, getAppender, getChainedPriority, getCurrentCategories, getDefaultHierarchy, getEffectiveLevel, getHierarchy, getInstance, getInstance, getLevel, getLoggerRepository, getName, getParent, getPriority, getResourceBundle, getResourceBundleString, getRoot, info, info, isAttached, isDebugEnabled, isEnabledFor, isInfoEnabled, l7dlog, l7dlog, log, log, log, removeAllAppenders, removeAppender, removeAppender, setAdditivity, setLevel, setPriority, setResourceBundle, shutdown, warn, warn
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.objectweb.util.monolog.api.TopicalLogger
getAdditivity, setAdditivity
 
Methods inherited from interface org.objectweb.util.monolog.api.Handler
getName
 

Field Detail

enable

protected boolean enable

DISABLE_OFF

protected static final int DISABLE_OFF
See Also:
Constant Field Values

DISABLE_ON

protected static final int DISABLE_ON

interPriority

protected MonologCategory.OwPriority interPriority

depth

protected byte depth

topicToparents

protected java.util.HashMap topicToparents
This field references all parent of this Logger. key = topic of the current logger value = its parent either the topic. A parent can be a MonologCategory or a Logger.


appenders

protected java.util.ArrayList appenders
This field references all appenders associated to the current Logger


categ

protected org.apache.log4j.Logger categ
This field references the inner Logger if the delegation was choosen.

Constructor Detail

MonologCategory

public MonologCategory(java.lang.String _initialName)
This constructor initializes the instance in inheritance mode. It initializes the instanceFQN, and struture of parents.


MonologCategory

public MonologCategory(org.apache.log4j.Logger c)
This constructor initializes the instance in delegation mode.

Parameters:
c - is the inner Logger. All calls will be foward to this instance
Method Detail

format

public static java.lang.String format(java.lang.String msg,
                                      int removeTopStack)
It formats a message by adding the object and the method name where the call to monolog was done.

Parameters:
msg - is the original message
removeTopStack - is the number of monolog method call. Indeed this method fetch a stack trace. This method fetches one line in this stack. The parameter is the line number in this stack.

getChainedLevel

public org.apache.log4j.Level getChainedLevel()
Starting from this Logger, search the Logger hierarchy for a non-null priority and return it. Otherwise, return the priority of the root Logger.

The Logger class is designed so that this method executes as quickly as possible.


callAppenders

public void callAppenders(org.apache.log4j.spi.LoggingEvent event)
In inheritance mode this method delegates the treatment to the other callAppendes methods. In delegation mode, the call is forwarded on the inner Logger instance.


callAppenders

public boolean callAppenders(org.apache.log4j.spi.LoggingEvent event,
                             boolean called)
This method calls all the parent loggers and call its appender either the followin condition:

Parameters:
event - is the logging event
called - is the boolean which permits to know if the current logger must call or not its appender without check its priority. return true is the logging event is enabled in the current logger or one of its ancestors.

isLoggable

public boolean isLoggable(int level)
Check if the level parameter are not filtered by the logger

Specified by:
isLoggable in interface Logger

isLoggable

public boolean isLoggable(Level l)
Description copied from interface: Logger
Check if a message of the given level would actually be logged by this logger.

Specified by:
isLoggable in interface Logger

isOn

public boolean isOn()
Is the handler enabled

Specified by:
isOn in interface Logger

log

public void log(int level,
                java.lang.Object o)
Log an object with a specific level. If the level parameter is loggable the object is handled.

Specified by:
log in interface Logger

log

public void log(Level l,
                java.lang.Object o)
Description copied from interface: Logger
Log a message, with no arguments. If the logger is currently enabled for the given message level then the given message is treated

Specified by:
log in interface Logger

log

public void log(int level,
                java.lang.Object o,
                java.lang.Throwable t)
Log an object and a trowable with a specific level.

Specified by:
log in interface Logger

log

public void log(Level l,
                java.lang.Object o,
                java.lang.Throwable t)
Description copied from interface: Logger
Log a message, with a throwable arguments which can represent an error or a context..

Specified by:
log in interface Logger

log

public void log(int level,
                java.lang.Object o,
                java.lang.Object location,
                java.lang.Object method)
Log an object and a trowable with a specific level. This method permits to specify an object instance and a method.

Specified by:
log in interface Logger

log

public void log(Level l,
                java.lang.Object o,
                java.lang.Object location,
                java.lang.Object method)
Description copied from interface: Logger
Log a message, with a location and method arguments. The location parameter can be the object instance which logs the event, or a string representation of the object. The method argument can be a java.lang.reflect.Method or a string which represents the method name.

Specified by:
log in interface Logger

log

public void log(int level,
                java.lang.Object o,
                java.lang.Throwable t,
                java.lang.Object location,
                java.lang.Object method)
Log an object and a trowable with a specific level. This method permits to specify an object instance and a method.

Specified by:
log in interface Logger

log

public void log(Level l,
                java.lang.Object o,
                java.lang.Throwable t,
                java.lang.Object location,
                java.lang.Object method)
Description copied from interface: Logger
Log a message, with a location, method and throwable arguments. The location parameter can be the object instance which logs the event, or a string representation of the object.. The method argument can be a java.lang.reflect.Method or a string which represents the method name. The throwable parameter permits to log an Exception.

Specified by:
log in interface Logger

turnOn

public void turnOn()
Enable the handler

Specified by:
turnOn in interface Logger

turnOff

public void turnOff()
Disable the handler

Specified by:
turnOff in interface Logger

setIntLevel

public void setIntLevel(int level)
Set the current level of the logger

Specified by:
setIntLevel in interface Logger

setLevel

public void setLevel(Level l)
Description copied from interface: Logger
Permits to set the level with a Level instance.

Specified by:
setLevel in interface Logger

getCurrentIntLevel

public int getCurrentIntLevel()
Return the current Level of the logger

Specified by:
getCurrentIntLevel in interface Logger

getCurrentLevel

public Level getCurrentLevel()
Description copied from interface: Logger
Returns the current level value under the Level format

Specified by:
getCurrentLevel in interface Logger

addHandler

public void addHandler(Handler h)
                throws java.lang.Exception
Add a handler in the Handler list of the topicalLogger

Specified by:
addHandler in interface TopicalLogger
Throws:
java.lang.Exception

addTopic

public void addTopic(java.lang.String topic)
              throws java.lang.Exception
Add a topic to the topicalLogger

Specified by:
addTopic in interface TopicalLogger
Throws:
java.lang.Exception

getHandler

public Handler[] getHandler()
Description copied from interface: TopicalLogger
It returns the list of the handler associated to this logger.

Specified by:
getHandler in interface TopicalLogger
Returns:
an array of Handler or an empty array.

getHandler

public Handler getHandler(java.lang.String hn)
Description copied from interface: TopicalLogger
It returns the handler which the name is equals to the parameter

Specified by:
getHandler in interface TopicalLogger
Returns:
an Handler or a null value.

removeAllHandlers

public void removeAllHandlers()
                       throws java.lang.Exception
Description copied from interface: TopicalLogger
A TopicalLogger manages a list of Handler instances. This method allows removing all handler.

Specified by:
removeAllHandlers in interface TopicalLogger
Throws:
java.lang.Exception

getTopics

public java.util.Enumeration getTopics()
Returns the list of the different names of the topicalLogger

Specified by:
getTopics in interface TopicalLogger

getTopic

public java.lang.String[] getTopic()
Returns the list of the different names of the topicalLogger

Specified by:
getTopic in interface TopicalLogger

removeHandler

public void removeHandler(Handler h)
                   throws java.lang.Exception
Remove a handler from the Handler list of the topicalLogger

Specified by:
removeHandler in interface TopicalLogger
Throws:
java.lang.Exception

removeTopic

public void removeTopic(java.lang.String topic)
                 throws java.lang.Exception
Remove a topic from the topicalLogger

Specified by:
removeTopic in interface TopicalLogger
Throws:
java.lang.Exception

setName

public void setName(java.lang.String n)
Description copied from interface: Handler
It assigns the name of the handler

Specified by:
setName in interface Handler

getType

public java.lang.String getType()
Description copied from interface: Handler
It retrieves the Handler type

Specified by:
getType in interface Handler

getAttributeNames

public java.lang.String[] getAttributeNames()
Description copied from interface: Handler
It retrieves the attributes of the handler

Specified by:
getAttributeNames in interface Handler

getAttribute

public java.lang.Object getAttribute(java.lang.String name)
Description copied from interface: Handler
It retrieves the value of an attribute value of the handler.

Specified by:
getAttribute in interface Handler
Parameters:
name - is an attribute name

setAttribute

public java.lang.Object setAttribute(java.lang.String name,
                                     java.lang.Object value)
Description copied from interface: Handler
It assigns an attributte to the handler.

Specified by:
setAttribute in interface Handler
Parameters:
name - is the attribute name
value - is the attribute value
Returns:
the old value is the attribute was already defined