Class MemoryTarget

java.lang.Object
org.apache.log.output.AbstractTarget
org.apache.log.output.MemoryTarget
All Implemented Interfaces:
ErrorAware, LogTarget, Closeable

public class MemoryTarget extends AbstractTarget
Output LogEvents into an buffer in memory. At a later stage these LogEvents can be forwarded or pushed to another target. This pushing is triggered when buffer is full, the priority of a LogEvent reaches a threshold or when another class calls the push method. This is based on specification of MemoryHandler in Logging JSR47.
Author:
Avalon Development Team, Peter Donald
  • Field Details

    • m_buffer

      private final LogEvent[] m_buffer
    • m_threshold

      private Priority m_threshold
    • m_target

      private LogTarget m_target
    • m_used

      private int m_used
    • m_index

      private int m_index
    • m_overwrite

      private boolean m_overwrite
  • Constructor Details

    • MemoryTarget

      public MemoryTarget(LogTarget target, int size, Priority threshold)
      Creation of a new instance of the memory target.
      Parameters:
      target - the target to push LogEvents to
      size - the event buffer size
      threshold - the priority at which to push LogEvents to next LogTarget
  • Method Details

    • setOverwrite

      protected void setOverwrite(boolean overwrite)
      Set flag indicating whether it is valid to overwrite memory buffer.
      Parameters:
      overwrite - true if buffer should overwrite logevents in buffer, false otherwise
    • doProcessEvent

      protected void doProcessEvent(LogEvent event)
      Process a log event, via formatting and outputting it.
      Specified by:
      doProcessEvent in class AbstractTarget
      Parameters:
      event - the log event
    • isFull

      public final boolean isFull()
      Check if memory buffer is full.
      Returns:
      true if buffer is full, false otherwise
    • shouldPush

      protected boolean shouldPush(LogEvent event)
      Determine if LogEvent should initiate a push to target. Subclasses can overide this method to change the conditions under which a push occurs.
      Parameters:
      event - the incoming LogEvent
      Returns:
      true if should push, false otherwise
    • push

      public void push()
      Push log events to target.