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
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.String[]getQueueAsStrings()Get a copy of the queue, rendering each record as a string.voidpublish(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, clearHandlers, close, flush, getHandlers, isAutoFlush, isCallerCalculationRequired, isCloseChildren, isEnabled, publishToNestedHandlers, removeHandler, reportError, reportError, setAutoFlush, setCloseChildren, setEnabled, setEncoding, setErrorManager, setFilter, setFormatter, setHandlers, setLevel
-
Methods inherited from class java.util.logging.Handler
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, isLoggable
-
-
-
-
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(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 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.
-
-