Package org.jboss.logmanager.handlers
Class QueueHandler
- java.lang.Object
-
- java.util.logging.Handler
-
- org.jboss.logmanager.ExtHandler
-
- org.jboss.logmanager.handlers.QueueHandler
-
- All Implemented Interfaces:
Closeable
,Flushable
,AutoCloseable
,FlushableCloseable
,Protectable
public class QueueHandler extends ExtHandler
A queue handler which retains the last few messages logged. The handler can be used as-is to remember recent messages, or one or more handlers may be nested, which allows this handler to "replay" messages to the child handler(s) upon request.- Author:
- David M. Lloyd
-
-
Field Summary
-
Fields inherited from class org.jboss.logmanager.ExtHandler
handlers, handlersUpdater
-
-
Constructor Summary
Constructors Constructor Description QueueHandler()
Construct a new instance with a default queue length.QueueHandler(int limit)
Construct a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
doPublish(ExtLogRecord record)
Do the actual work of publication; the record will have been filtered already.int
getLimit()
Get the queue length limit.ExtLogRecord[]
getQueue()
Get a copy of the queue as it is at an exact moment in time.String[]
getQueueAsStrings()
Get a copy of the queue, rendering each record as a string.void
publish(LogRecord record)
void
publish(ExtLogRecord record)
Publish anExtLogRecord
.void
replay()
Replay the stored queue to the nested handlers.void
setLimit(int limit)
Set the queue length limit.-
Methods inherited from class org.jboss.logmanager.ExtHandler
addHandler, checkAccess, checkAccess, clearHandlers, close, disableAccess, enableAccess, flush, getHandlers, isAutoFlush, isCallerCalculationRequired, isCloseChildren, isEnabled, protect, removeHandler, setAutoFlush, setCloseChildren, setEnabled, setEncoding, setErrorManager, setFilter, setFormatter, setHandlers, setLevel, unprotect
-
Methods inherited from class java.util.logging.Handler
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, isLoggable, reportError
-
-
-
-
Method Detail
-
publish
public void publish(ExtLogRecord record)
Description copied from class:ExtHandler
Publish anExtLogRecord
. The logging request was made initially to a Logger object, which initialized the LogRecord and forwarded it here. TheExtHandler
is responsible for formatting the message, when and if necessary. The formatting should include localization.- Overrides:
publish
in classExtHandler
- Parameters:
record
- the log record to publish
-
publish
public void publish(LogRecord record)
Description copied from class:ExtHandler
- Overrides:
publish
in classExtHandler
-
doPublish
protected void doPublish(ExtLogRecord record)
Description copied from class:ExtHandler
Do the actual work of publication; the record will have been filtered already. The default implementation does nothing except to flush if theautoFlush
property is set totrue
; if this behavior is to be preserved in a subclass then this method should be called after the record is physically written.- Overrides:
doPublish
in classExtHandler
- Parameters:
record
- the log record to publish
-
getLimit
public int getLimit()
Get the queue length limit. This is the number of messages that will be saved before old messages roll off of the queue.- Returns:
- the queue length limit
-
setLimit
public void setLimit(int limit)
Set the queue length limit. This is the number of messages that will be saved before old messages roll off of the queue.- Parameters:
limit
- the queue length limit
-
getQueue
public ExtLogRecord[] getQueue()
Get a copy of the queue as it is at an exact moment in time.- Returns:
- the copy of the queue
-
getQueueAsStrings
public String[] getQueueAsStrings()
Get a copy of the queue, rendering each record as a string.- Returns:
- the copy of the queue rendered as strings
-
replay
public void replay()
Replay the stored queue to the nested handlers.
-
-