java.util.logging.MemoryHandler
A Handler
put the description of log events into a cycled memory
buffer.
Mostly this MemoryHandler
just puts the given LogRecord
into the internal buffer and doesn't perform any formatting or any other process.
When the buffer is full, the earliest buffered records will be discarded.
Every MemoryHandler
has a target handler, and push action can be
triggered so that all buffered records will be output to the target handler
and normally the latter will publish the records. After the push action, the
buffer will be cleared.
The push action can be triggered in three ways:
- The push method is called explicitly
- When a new
LogRecord
is put into the internal buffer, and it has a level which is not less than the specified push level.
- A subclass extends this
MemoryHandler
and call push method implicitly according to some criteria.
MemoryHandler
will read following LogManager
properties for initialization, if given properties are not defined or has
invalid values, default value will be used.
- java.util.logging.MemoryHandler.level specifies the level for this
Handler
, defaults to Level.ALL
.
- java.util.logging.MemoryHandler.filter specifies the
Filter
class name, defaults to no Filter
.
- java.util.logging.MemoryHandler.size specifies the buffer size in number
of
LogRecord
, defaults to 1000.
- java.util.logging.MemoryHandler.push specifies the push level, defaults
to level.SEVERE.
- java.util.logging.MemoryHandler.target specifies the class of the target
Handler
, no default value, which means this property must be
specified either by property setting or by constructor.
Summary
Public Constructors
Public Methods
close,
flush,
getEncoding,
getErrorManager,
getFilter,
getFormatter,
getLevel,
isLoggable,
publish,
reportError,
setEncoding,
setErrorManager,
setFilter,
setFormatter,
setLevel
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
Details
Public Constructors
public
MemoryHandler()
Default constructor, construct and init a MemoryHandler
using
LogManager
properties or default values
public
MemoryHandler(Handler target, int size, Level pushLevel)
Construct and init a
MemoryHandler
using given target, size
and push level, other properties using
LogManager
properties
or default values
Parameters
target
| the given Handler to output |
size
| the maximum number of buffered LogRecord |
pushLevel
| the push level |
Public Methods
public
void
close()
Close this handler and target handler, free all associated resources
Throws
SecurityException
| if security manager exists and it determines that caller
does not have the required permissions to control this handler
|
public
void
flush()
Call target handler to flush any buffered output.
Note that this doesn't cause this MemoryHandler
to push.
public
Level
getPushLevel()
public
boolean
isLoggable(LogRecord record)
Check if given LogRecord
would be put into this
MemoryHandler
's internal buffer.
The given LogRecord
is loggable if and only if it has
appropriate level and it pass any associated filter's check.
Note that the push level is not used for this check.
Parameters
record
| the given LogRecord |
Returns
- if the given
LogRecord
should be logged
public
synchronized
void
publish(LogRecord record)
Put a given
LogRecord
into internal buffer.
If given record is not loggable, just return. Otherwise it is stored in
the buffer. Furthermore if the record's level is not less than the push
level, the push action is triggered to output all the buffered records
to the target handler, and the target handler will publish them.
public
void
push()
Triggers a push action to output all buffered records to the target handler,
and the target handler will publish them. Then the buffer is cleared.
public
void
setPushLevel(Level newLevel)
Set the push level. The push level is used to check the push action
triggering. When a new
LogRecord
is put into the internal
buffer and its level is not less than the push level, the push action
will be triggered. Note that set new push level won't trigger push action.
Parameters
newLevel
| the new level to set |
Throws
SecurityException
| if security manager exists and it determines that caller
does not have the required permissions to control this handler
|