Package org.jboss.logmanager.handlers
Class AsyncHandler
- java.lang.Object
-
- java.util.logging.Handler
-
- org.jboss.logmanager.ExtHandler
-
- org.jboss.logmanager.handlers.AsyncHandler
-
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable,FlushableCloseable
public class AsyncHandler extends ExtHandler
An asynchronous log handler which is used to write to a handler or group of handlers which are "slow" or introduce some degree of latency.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAsyncHandler.OverflowAction
-
Field Summary
-
Fields inherited from class org.jboss.logmanager.ExtHandler
handlers, handlersUpdater
-
-
Constructor Summary
Constructors Constructor Description AsyncHandler()Construct a new instance.AsyncHandler(int queueLength)Construct a new instance.AsyncHandler(int queueLength, ThreadFactory threadFactory)Construct a new instance.AsyncHandler(ThreadFactory threadFactory)Construct a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Close all child handlers.protected voiddoPublish(ExtLogRecord record)Do the actual work of publication; the record will have been filtered already.AsyncHandler.OverflowActiongetOverflowAction()Get the overflow action.intgetQueueLength()The full size of the queue.voidsetOverflowAction(AsyncHandler.OverflowAction overflowAction)Set the overflow action.-
Methods inherited from class org.jboss.logmanager.ExtHandler
addHandler, clearHandlers, flush, getHandlers, isAutoFlush, isCallerCalculationRequired, isCloseChildren, isEnabled, publish, publish, 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
-
-
-
-
Constructor Detail
-
AsyncHandler
public AsyncHandler(int queueLength, ThreadFactory threadFactory)Construct a new instance.- Parameters:
queueLength- the queue lengththreadFactory- the thread factory to use to construct the handler thread
-
AsyncHandler
public AsyncHandler(ThreadFactory threadFactory)
Construct a new instance.- Parameters:
threadFactory- the thread factory to use to construct the handler thread
-
AsyncHandler
public AsyncHandler(int queueLength)
Construct a new instance.- Parameters:
queueLength- the queue length
-
AsyncHandler
public AsyncHandler()
Construct a new instance.
-
-
Method Detail
-
getQueueLength
public int getQueueLength()
The full size of the queue.- Returns:
- the full size of the queue.
-
getOverflowAction
public AsyncHandler.OverflowAction getOverflowAction()
Get the overflow action.- Returns:
- the overflow action
-
setOverflowAction
public void setOverflowAction(AsyncHandler.OverflowAction overflowAction)
Set the overflow action.- Parameters:
overflowAction- the overflow action
-
doPublish
protected void doPublish(ExtLogRecord record)
Do 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
-
close
public void close() throws SecurityExceptionClose all child handlers.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classExtHandler- Throws:
SecurityException
-
-