org.apache.hivemind.management.log4j
Class LogManagementMBean

java.lang.Object
  extended bymx4j.AbstractDynamicMBean
      extended byorg.apache.hivemind.management.log4j.LogManagementMBean
All Implemented Interfaces:
javax.management.DynamicMBean, LogManagement, javax.management.MBeanRegistration

public class LogManagementMBean
extends mx4j.AbstractDynamicMBean
implements javax.management.MBeanRegistration, LogManagement

MBean that manages MBeans for Log4j Loggers. New MBeans can be added by specifying the Logger name or a logger pattern. Each MBean allows managing level and appenders of a single logger. Uses the LoggerDynamicMBean from the log4j library. Similar to HierarchyDynamicMBeanbut implements the hivemind ObjectName scheme by using ObjectNameBuilder service. *

Since:
1.1
Author:
Achim Huegen

Constructor Summary
LogManagementMBean(ObjectNameBuilder objectNameBuilder, java.util.List loggerContributions)
           
 
Method Summary
protected  void addConfiguredLoggerMBeans()
          Adds MBeans for all Loggers that are defined in the service configuration
protected  javax.management.ObjectName addLoggerMBean(org.apache.log4j.Logger logger)
          Adds a MBean for a logger.
 void addLoggerMBean(java.lang.String loggerPattern)
          Adds a MBean for a logger or a group of loggers that matches a pattern.
protected  void addLoggerMBeansForPattern(java.lang.String loggerPattern)
          Adds MBeans for all existing Loggers, that match the loggerPattern
protected  javax.management.MBeanAttributeInfo[] createMBeanAttributeInfo()
           
protected  javax.management.MBeanOperationInfo[] createMBeanOperationInfo()
           
 ObjectNameBuilder getObjectNameBuilder()
           
 java.lang.String getThreshold()
           
protected  boolean isMatch(java.lang.String loggerName, java.lang.String loggerPattern)
          Returns true if loggerName matches a loggerPattern The pattern kann contain '*' as wildcard character.
 void postDeregister()
           
 void postRegister(java.lang.Boolean registrationDone)
           
 void preDeregister()
           
 javax.management.ObjectName preRegister(javax.management.MBeanServer mbeanserver, javax.management.ObjectName objectname)
           
 void setThreshold(java.lang.String threshold)
           
 
Methods inherited from class mx4j.AbstractDynamicMBean
createMBeanConstructorInfo, createMBeanInfo, createMBeanNotificationInfo, findMethod, getAttribute, getAttributes, getMBeanClassName, getMBeanDescription, getMBeanInfo, getResource, invoke, invoke, invoke, invokeMethod, setAttribute, setAttributes, setMBeanInfo, setResource
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LogManagementMBean

public LogManagementMBean(ObjectNameBuilder objectNameBuilder,
                          java.util.List loggerContributions)
Method Detail

createMBeanAttributeInfo

protected javax.management.MBeanAttributeInfo[] createMBeanAttributeInfo()

createMBeanOperationInfo

protected javax.management.MBeanOperationInfo[] createMBeanOperationInfo()

preRegister

public javax.management.ObjectName preRegister(javax.management.MBeanServer mbeanserver,
                                               javax.management.ObjectName objectname)
Specified by:
preRegister in interface javax.management.MBeanRegistration

postRegister

public void postRegister(java.lang.Boolean registrationDone)
Specified by:
postRegister in interface javax.management.MBeanRegistration

preDeregister

public void preDeregister()
                   throws java.lang.Exception
Specified by:
preDeregister in interface javax.management.MBeanRegistration
Throws:
java.lang.Exception

postDeregister

public void postDeregister()
Specified by:
postDeregister in interface javax.management.MBeanRegistration

getThreshold

public java.lang.String getThreshold()

setThreshold

public void setThreshold(java.lang.String threshold)

addLoggerMBean

public void addLoggerMBean(java.lang.String loggerPattern)
Description copied from interface: LogManagement
Adds a MBean for a logger or a group of loggers that matches a pattern. The pattern kann contain '*' as wildcard character. If no wildcard is used the logger is created if it doesn't exist. This is useful, since most loggers are not created before the defining class is loaded. And this may be long after this MBean is registered. If a wildcard is used, only loggers that already exist. Example: addLoggerMBean( "hivemind.*" )

Specified by:
addLoggerMBean in interface LogManagement
Parameters:
loggerPattern - Name of the logger
Returns:
ObjectName of created MBean
See Also:
LogManagement.addLoggerMBean(java.lang.String)

addLoggerMBean

protected javax.management.ObjectName addLoggerMBean(org.apache.log4j.Logger logger)
Adds a MBean for a logger.

Parameters:
logger - the logger
Returns:
ObjectName of created MBean

addConfiguredLoggerMBeans

protected void addConfiguredLoggerMBeans()
Adds MBeans for all Loggers that are defined in the service configuration


addLoggerMBeansForPattern

protected void addLoggerMBeansForPattern(java.lang.String loggerPattern)
Adds MBeans for all existing Loggers, that match the loggerPattern

Parameters:
loggerPattern -

getObjectNameBuilder

public ObjectNameBuilder getObjectNameBuilder()
Returns:
Returns the _objectNameBuilder.

isMatch

protected boolean isMatch(java.lang.String loggerName,
                          java.lang.String loggerPattern)
Returns true if loggerName matches a loggerPattern The pattern kann contain '*' as wildcard character. This gets translated to '.*' and is used for a regex match using jakarta oro