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.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Deque<ExtLogRecord>bufferprivate intlimit-
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 Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static java.lang.IllegalArgumentExceptionbadQueueLength()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, isEnabled, protect, removeHandler, setAutoFlush, setEnabled, setEncoding, setErrorManager, setFilter, setFormatter, setHandlers, setLevel, unprotect
-
-
-
-
Field Detail
-
buffer
private final java.util.Deque<ExtLogRecord> buffer
-
limit
private int limit
-
-
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.
-
badQueueLength
private static java.lang.IllegalArgumentException badQueueLength()
-
-