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:
java.io.Closeable,java.io.Flushable,java.lang.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 voiddoPublish(ExtLogRecord record)Do the actual work of publication; the record will have been filtered already.intgetLimit()Get the queue length limit.ExtLogRecord[]getQueue()Get a copy of the queue as it is at an exact moment in time.java.lang.String[]getQueueAsStrings()Get a copy of the queue, rendering each record as a string.voidpublish(java.util.logging.LogRecord record)voidpublish(ExtLogRecord record)Publish anExtLogRecord.voidreplay()Replay the stored queue to the nested handlers.voidsetLimit(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
-
-
-
-
Method Detail
-
publish
public void publish(ExtLogRecord record)
Description copied from class:ExtHandlerPublish anExtLogRecord. The logging request was made initially to a Logger object, which initialized the LogRecord and forwarded it here. TheExtHandleris responsible for formatting the message, when and if necessary. The formatting should include localization.- Overrides:
publishin classExtHandler- Parameters:
record- the log record to publish
-
publish
public void publish(java.util.logging.LogRecord record)
Description copied from class:ExtHandler- Overrides:
publishin classExtHandler
-
doPublish
protected void doPublish(ExtLogRecord record)
Description copied from class:ExtHandlerDo the actual work of publication; the record will have been filtered already. The default implementation does nothing except to flush if theautoFlushproperty 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:
doPublishin 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 java.lang.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.
-
-