Class ChainsawAppenderHandler

java.lang.Object
org.apache.log4j.AppenderSkeleton
org.apache.log4j.chainsaw.ChainsawAppenderHandler
All Implemented Interfaces:
org.apache.log4j.Appender, org.apache.log4j.spi.OptionHandler

public class ChainsawAppenderHandler extends org.apache.log4j.AppenderSkeleton
A handler class that either extends a particular appender hierarchy or can be bound into the Log4j appender framework, and queues events, to be later dispatched to registered/interested parties.
  • Field Details

    • DEFAULT_IDENTIFIER

      private static final String DEFAULT_IDENTIFIER
      See Also:
    • mutex

      private final Object mutex
    • sleepInterval

      private int sleepInterval
    • listenerList

      private EventListenerList listenerList
    • dataRate

      private double dataRate
    • identifierExpression

      private String identifierExpression
    • resolver

      private final org.apache.log4j.spi.LoggingEventFieldResolver resolver
    • propertySupport

      private PropertyChangeSupport propertySupport
    • customExpressionRules

      private Map<String,org.apache.log4j.rule.Rule> customExpressionRules
    • worker

      NOTE: This variable needs to be physically located LAST, because of the initialization sequence, the WorkQueue constructor starts a thread which ends up needing some reference to fields created in ChainsawAppenderHandler (outer instance) which may not have been created yet. Becomes a race condition, and therefore this field initialization should be kept last.
  • Constructor Details

    • ChainsawAppenderHandler

      public ChainsawAppenderHandler(ChainsawAppender appender)
    • ChainsawAppenderHandler

      public ChainsawAppenderHandler()
  • Method Details

    • setIdentifierExpression

      public void setIdentifierExpression(String identifierExpression)
    • getIdentifierExpression

      public String getIdentifierExpression()
    • addCustomEventBatchListener

      public void addCustomEventBatchListener(String identifier, EventBatchListener l) throws IllegalArgumentException
      Throws:
      IllegalArgumentException
    • addEventBatchListener

      public void addEventBatchListener(EventBatchListener l)
    • removeEventBatchListener

      public void removeEventBatchListener(EventBatchListener l)
    • append

      public void append(org.apache.log4j.spi.LoggingEvent event)
      Specified by:
      append in class org.apache.log4j.AppenderSkeleton
    • close

      public void close()
    • requiresLayout

      public boolean requiresLayout()
    • getQueueInterval

      public int getQueueInterval()
    • setQueueInterval

      public void setQueueInterval(int interval)
    • getTabIdentifier

      String getTabIdentifier(org.apache.log4j.spi.LoggingEvent e)
      Determines an appropriate title for the Tab for the Tab Pane by locating a the hostname property
      Parameters:
      e -
      Returns:
      identifier
    • getDataRate

      public double getDataRate()
      Exposes the current Data rate calculated. This is periodically updated by an internal Thread as is the number of events that have been processed, and dispatched to all listeners since the last sample period divided by the number of seconds since the last sample period.

      This method fires a PropertyChange event so listeners can monitor the rate

      Returns:
      double # of events processed per second
    • setDataRate

      void setDataRate(double dataRate)
      Parameters:
      dataRate -
    • addPropertyChangeListener

      public void addPropertyChangeListener(PropertyChangeListener listener)
      Parameters:
      listener -
    • addPropertyChangeListener

      public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
      Parameters:
      propertyName -
      listener -
    • removePropertyChangeListener

      public void removePropertyChangeListener(PropertyChangeListener listener)
      Parameters:
      listener -
    • removePropertyChangeListener

      public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
      Parameters:
      propertyName -
      listener -