org.apache.log.output
Class MemoryTarget

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

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

Constructor Summary
MemoryTarget(LogTarget target, int size, Priority threshold)
          Creation of a new instance of the memory target.
 
Method Summary
protected  void doProcessEvent(LogEvent event)
          Process a log event, via formatting and outputting it.
 boolean isFull()
          Check if memory buffer is full.
 void push()
          Push log events to target.
protected  void setOverwrite(boolean overwrite)
          Set flag indicating whether it is valid to overwrite memory buffer.
protected  boolean shouldPush(LogEvent event)
          Determine if LogEvent should initiate a push to target.
 
Methods inherited from class org.apache.log.output.AbstractTarget
close, getErrorHandler, isOpen, open, processEvent, setErrorHandler
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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.



Copyright © 1997-2005 The Apache Software Foundation. All Rights Reserved.