java.util.logging
Class MemoryHandler
A
MemoryHandler
maintains a circular buffer of
log records.
Configuration: Values of the subsequent
LogManager
properties are taken into consideration
when a
MemoryHandler
is initialized.
If a property is not defined, or if it has an invalid
value, a default is taken without an exception being thrown.
java.util.MemoryHandler.level
- specifies
the initial severity level threshold. Default value:
Level.ALL
.java.util.MemoryHandler.filter
- specifies
the name of a Filter class. Default value: No Filter.java.util.MemoryHandler.size
- specifies the
maximum number of log records that are kept in the circular
buffer. Default value: 1000.java.util.MemoryHandler.push
- specifies the
pushLevel
. Default value:
Level.SEVERE
.java.util.MemoryHandler.target
- specifies the
name of a subclass of Handler
that will be used as the
target handler. There is no default value for this property;
if it is not set, the no-argument MemoryHandler constructor
will throw an exception.
MemoryHandler() - Constructs a
MemoryHandler for keeping a circular
buffer of LogRecords; the initial configuration is determined by
the LogManager properties described above.
|
MemoryHandler(Handler target, int size, Level pushLevel) - Constructs a
MemoryHandler for keeping a circular
buffer of LogRecords, given some parameters.
|
void | close() - Closes this
MemoryHandler and its associated target
handler, discarding the contents of the memory buffer.
|
void | flush() - Forces any data that may have been buffered by the target
Handler to the underlying output device, but
does not push the contents of the circular memory
buffer to the target handler.
|
Level | getPushLevel() - Returns the push level threshold for this
Handler .
|
void | publish(LogRecord record) - Stores a
LogRecord in a fixed-size circular buffer,
provided the record passes all tests for being loggable.
|
void | push() - Pushes the contents of the memory buffer to the target
Handler and clears the buffer.
|
void | setPushLevel(Level pushLevel) - Sets the push level threshold for this
Handler .
|
close , flush , getEncoding , getErrorManager , getFilter , getFormatter , getLevel , isLoggable , publish , reportError , setEncoding , setErrorManager , setFilter , setFormatter , setLevel |
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
MemoryHandler
public MemoryHandler()
Constructs a MemoryHandler
for keeping a circular
buffer of LogRecords; the initial configuration is determined by
the LogManager
properties described above.
MemoryHandler
public MemoryHandler(Handler target,
int size,
Level pushLevel)
Constructs a MemoryHandler
for keeping a circular
buffer of LogRecords, given some parameters. The values of the
other parameters are taken from LogManager properties, as
described above.
target
- the target handler that will receive those
log records that are passed on for publication.size
- the number of log records that are kept in the buffer.
The value must be a at least one.pushLevel
- the push level threshold for this
MemoryHandler
. When a record is published whose
severity level is greater than or equal to
pushLevel
, the push()
method will be
invoked in order to push the bufffer contents to
target
.
IllegalArgumentException
- if size
is negative or zero. The GNU implementation also throws
an IllegalArgumentException if target
or
pushLevel
are null
, but the
API specification does not prescribe what should happen
in those cases.
close
public void close()
throws SecurityException
Closes this
MemoryHandler
and its associated target
handler, discarding the contents of the memory buffer. However,
any data that may have been buffered by the target
Handler
is forced to the underlying output device.
As soon as
close
has been called,
a
Handler
should not be used anymore. Attempts
to publish log records, to flush buffers, or to modify the
Handler
in any other way may throw runtime
exceptions after calling
close
.
In case of an I/O failure, the
ErrorManager
of
the associated target
Handler
will be informed, but
the caller of this method will not receive an exception.
- close in interface Handler
SecurityException
- if a security manager exists and
the caller is not granted the permission to control
the logging infrastructure.
flush
public void flush()
Forces any data that may have been buffered by the target
Handler
to the underlying output device, but
does
not push the contents of the circular memory
buffer to the target handler.
In case of an I/O failure, the
ErrorManager
of the
target
Handler
will be notified, but the caller of
this method will not receive an exception.
- flush in interface Handler
getPushLevel
public Level getPushLevel()
Returns the push level threshold for this
Handler
.
When a record is published whose severity level is greater
than or equal to the
pushLevel
of this
MemoryHandler
, the
push()
method will be
invoked for pushing the buffer contents to the target
Handler
.
- the push level threshold for automatic pushing.
publish
public void publish(LogRecord record)
Stores a
LogRecord
in a fixed-size circular buffer,
provided the record passes all tests for being loggable. If the
buffer is full, the oldest record will be discarded.
If the record has a severity level which is greater than or
equal to the
pushLevel
of this
MemoryHandler
, the
push()
method will be
invoked for pushing the buffer contents to the target
Handler
.
Most applications do not need to call this method directly.
Instead, they will use use a
Logger
, which will create
LogRecords and distribute them to registered handlers.
- publish in interface Handler
record
- the log event to be published.
push
public void push()
Pushes the contents of the memory buffer to the target
Handler
and clears the buffer. Note that
the target handler will discard those records that do
not satisfy its own severity level threshold, or that are
not considered loggable by an installed
Filter
.
In case of an I/O failure, the
ErrorManager
of the
target
Handler
will be notified, but the caller of
this method will not receive an exception.
setPushLevel
public void setPushLevel(Level pushLevel)
Sets the push level threshold for this
Handler
.
When a record is published whose severity level is greater
than or equal to the
pushLevel
of this
MemoryHandler
, the
push()
method will be
invoked for pushing the buffer contents to the target
Handler
.
pushLevel
- the push level threshold for automatic pushing.
MemoryHandler.java -- a class for buffering log messages in a memory buffer
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.