Package org.apache.log.output
Class MemoryTarget
java.lang.Object
org.apache.log.output.AbstractTarget
org.apache.log.output.MemoryTarget
- All Implemented Interfaces:
ErrorAware
,LogTarget
,Closeable
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 Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionMemoryTarget
(LogTarget target, int size, Priority threshold) Creation of a new instance of the memory target. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
doProcessEvent
(LogEvent event) Process a log event, via formatting and outputting it.final 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
-
Field Details
-
m_buffer
-
m_threshold
-
m_target
-
m_used
private int m_used -
m_index
private int m_index -
m_overwrite
private boolean m_overwrite
-
-
Constructor Details
-
MemoryTarget
Creation of a new instance of the memory target.- Parameters:
target
- the target to push LogEvents tosize
- the event buffer sizethreshold
- 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
Process a log event, via formatting and outputting it.- Specified by:
doProcessEvent
in classAbstractTarget
- 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
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.
-