Skip to content

Most visited

Recently visited

navigation
Added in API level 1

MemoryHandler

public class MemoryHandler
extends Handler

java.lang.Object
   ↳ java.util.logging.Handler
     ↳ 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 method can be called directly, but will also be called automatically if a new LogRecord is added that has a level greater than or equal to than the value defined for the property java.util.logging.MemoryHandler.push.

MemoryHandler will read following LogManager properties for initialization, if given properties are not defined or has invalid values, default value will be used.

Summary

Public constructors

MemoryHandler()

Default constructor, construct and init a MemoryHandler using LogManager properties or default values.

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.

Public methods

void close()

Close this handler and target handler, free all associated resources.

void flush()

Call target handler to flush any buffered output.

Level getPushLevel()

Return the push level.

boolean isLoggable(LogRecord record)

Check if given LogRecord would be put into this MemoryHandler's internal buffer.

void publish(LogRecord record)

Put a given LogRecord into internal buffer.

void push()

Triggers a push action to output all buffered records to the target handler, and the target handler will publish them.

void setPushLevel(Level newLevel)

Set the push level.

Inherited methods

From class java.util.logging.Handler
From class java.lang.Object

Public constructors

MemoryHandler

Added in API level 1
MemoryHandler ()

Default constructor, construct and init a MemoryHandler using LogManager properties or default values.

Throws
RuntimeException if property value are invalid and no default value could be used.

MemoryHandler

Added in API level 1
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 Handler: the given Handler to output
size int: the maximum number of buffered LogRecord, greater than zero
pushLevel Level: the push level
Throws
IllegalArgumentException if size <= 0
RuntimeException if property value are invalid and no default value could be used.

Public methods

close

Added in API level 1
void close ()

Close this handler and target handler, free all associated resources.

flush

Added in API level 1
void flush ()

Call target handler to flush any buffered output. Note that this doesn't cause this MemoryHandler to push.

getPushLevel

Added in API level 1
Level getPushLevel ()

Return the push level.

Returns
Level the push level

isLoggable

Added in API level 1
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 LogRecord: the given LogRecord
Returns
boolean the given LogRecord if it should be logged, false if LogRecord is null.

publish

Added in API level 1
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.

Parameters
record LogRecord: the log record

push

Added in API level 1
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.

setPushLevel

Added in API level 1
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 Level: the new level to set.
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.