Class DefaultAccessLogReceiver

  • All Implemented Interfaces:
    AccessLogReceiver, java.io.Closeable, java.lang.AutoCloseable, java.lang.Runnable

    public class DefaultAccessLogReceiver
    extends java.lang.Object
    implements AccessLogReceiver, java.lang.Runnable, java.io.Closeable
    Log Receiver that stores logs in a directory under the specified file name, and rotates them after midnight.

    Web threads do not touch the log file, but simply queue messages to be written later by a worker thread. A lightweight CAS based locking mechanism is used to ensure than only 1 thread is active writing messages at any given time

    Author:
    Stuart Douglas
    • Constructor Summary

      Constructors 
      Constructor Description
      DefaultAccessLogReceiver​(java.util.concurrent.Executor logWriteExecutor, java.io.File outputDirectory, java.lang.String logBaseName)  
      DefaultAccessLogReceiver​(java.util.concurrent.Executor logWriteExecutor, java.io.File outputDirectory, java.lang.String logBaseName, java.lang.String logNameSuffix)  
      DefaultAccessLogReceiver​(java.util.concurrent.Executor logWriteExecutor, java.io.File outputDirectory, java.lang.String logBaseName, java.lang.String logNameSuffix, boolean rotate)  
      DefaultAccessLogReceiver​(java.util.concurrent.Executor logWriteExecutor, java.nio.file.Path outputDirectory, java.lang.String logBaseName)  
      DefaultAccessLogReceiver​(java.util.concurrent.Executor logWriteExecutor, java.nio.file.Path outputDirectory, java.lang.String logBaseName, java.lang.String logNameSuffix)  
      DefaultAccessLogReceiver​(java.util.concurrent.Executor logWriteExecutor, java.nio.file.Path outputDirectory, java.lang.String logBaseName, java.lang.String logNameSuffix, boolean rotate)  
    • Constructor Detail

      • DefaultAccessLogReceiver

        public DefaultAccessLogReceiver​(java.util.concurrent.Executor logWriteExecutor,
                                        java.io.File outputDirectory,
                                        java.lang.String logBaseName)
      • DefaultAccessLogReceiver

        public DefaultAccessLogReceiver​(java.util.concurrent.Executor logWriteExecutor,
                                        java.io.File outputDirectory,
                                        java.lang.String logBaseName,
                                        java.lang.String logNameSuffix)
      • DefaultAccessLogReceiver

        public DefaultAccessLogReceiver​(java.util.concurrent.Executor logWriteExecutor,
                                        java.io.File outputDirectory,
                                        java.lang.String logBaseName,
                                        java.lang.String logNameSuffix,
                                        boolean rotate)
      • DefaultAccessLogReceiver

        public DefaultAccessLogReceiver​(java.util.concurrent.Executor logWriteExecutor,
                                        java.nio.file.Path outputDirectory,
                                        java.lang.String logBaseName)
      • DefaultAccessLogReceiver

        public DefaultAccessLogReceiver​(java.util.concurrent.Executor logWriteExecutor,
                                        java.nio.file.Path outputDirectory,
                                        java.lang.String logBaseName,
                                        java.lang.String logNameSuffix)
      • DefaultAccessLogReceiver

        public DefaultAccessLogReceiver​(java.util.concurrent.Executor logWriteExecutor,
                                        java.nio.file.Path outputDirectory,
                                        java.lang.String logBaseName,
                                        java.lang.String logNameSuffix,
                                        boolean rotate)
    • Method Detail

      • run

        public void run()
        processes all queued log messages
        Specified by:
        run in interface java.lang.Runnable
      • rotate

        public void rotate()
        forces a log rotation. This rotation is performed in an async manner, you cannot rely on the rotation being performed immediately after this method returns.
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException