org.apache.log.output

Class MemoryTarget

Implemented Interfaces:
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.
Authors:
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, doProcessEvent, error, getErrorHandler, isOpen, open, processEvent, setErrorHandler

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

doProcessEvent

protected void doProcessEvent(LogEvent event)
Process a log event, via formatting and outputting it.
Overrides:
doProcessEvent in interface 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

push

public void push()
Push log events to target.

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

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