Class AsyncHandler

All Implemented Interfaces:
Closeable, Flushable, AutoCloseable, FlushableCloseable, Protectable

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.
  • Constructor Details

    • AsyncHandler

      public AsyncHandler(int queueLength, ThreadFactory threadFactory)
      Construct a new instance.
      Parameters:
      queueLength - the queue length
      threadFactory - 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 Details

    • 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 the autoFlush property is set to true; 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 class ExtHandler
      Parameters:
      record - the log record to publish
    • close

      public void close() throws SecurityException
      Close all child handlers.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class ExtHandler
      Throws:
      SecurityException