Class AsyncHandler

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.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 Detail

      • AsyncHandler

        public AsyncHandler​(int queueLength,
                            java.util.concurrent.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​(java.util.concurrent.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.
      • 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 java.lang.SecurityException
        Close all child handlers.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class ExtHandler
        Throws:
        java.lang.SecurityException