Class 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.
    • Field Detail

      • m_buffer

        private final LogEvent[] m_buffer
      • m_threshold

        private Priority m_threshold
      • m_used

        private int m_used
      • m_index

        private int m_index
      • m_overwrite

        private boolean m_overwrite
    • Constructor Detail

      • 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 Detail

      • 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.