Class AsyncLogTarget

  • All Implemented Interfaces:
    java.lang.Runnable, ErrorAware, LogTarget, Closeable

    public class AsyncLogTarget
    extends AbstractWrappingTarget
    implements java.lang.Runnable
    An asynchronous LogTarget that sends entries on in another thread. It is the responsibility of the user of this class to start the thread etc.
     LogTarget mySlowTarget = ...;
     AsyncLogTarget asyncTarget = new AsyncLogTarget( mySlowTarget );
     Thread thread = new Thread( asyncTarget );
     thread.setPriority( Thread.MIN_PRIORITY );
     thread.start();
    
     logger.setLogTargets( new LogTarget[] { asyncTarget } );
     
    • Field Detail

      • m_list

        private final java.util.LinkedList m_list
      • m_queueSize

        private final int m_queueSize
    • Constructor Detail

      • AsyncLogTarget

        public AsyncLogTarget​(LogTarget logTarget)
        Creation of a new async log target.
        Parameters:
        logTarget - the underlying target
      • AsyncLogTarget

        public AsyncLogTarget​(LogTarget logTarget,
                              int queueSize)
        Creation of a new async log target.
        Parameters:
        logTarget - the underlying target
        queueSize - the queue size
      • AsyncLogTarget

        public AsyncLogTarget​(LogTarget logTarget,
                              boolean closeTarget)
        Creation of a new async log target.
        Parameters:
        logTarget - the underlying target
        closeTarget - close the underlying target when this target is closed. This flag has no effect unless the logTarget implements Closeable.
      • AsyncLogTarget

        public AsyncLogTarget​(LogTarget logTarget,
                              int queueSize,
                              boolean closeTarget)
        Creation of a new async log target.
        Parameters:
        logTarget - the underlying target
        queueSize - the queue size
        closeTarget - close the underlying target when this target is closed. This flag has no effect unless the logTarget implements Closeable.
    • Method Detail

      • doProcessEvent

        public void doProcessEvent​(LogEvent event)
        Process a log event by adding it to queue.
        Specified by:
        doProcessEvent in class AbstractTarget
        Parameters:
        event - the log event
      • run

        public void run()
        Thread startup.
        Specified by:
        run in interface java.lang.Runnable