Class DefaultAccessLogReceiver
- java.lang.Object
-
- io.undertow.server.handlers.accesslog.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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDefaultAccessLogReceiver.Builder
-
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)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static DefaultAccessLogReceiver.Builderbuilder()voidclose()voidlogMessage(java.lang.String message)voidrotate()forces a log rotation.voidrun()processes all queued log messages
-
-
-
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
-
logMessage
public void logMessage(java.lang.String message)
- Specified by:
logMessagein interfaceAccessLogReceiver
-
run
public void run()
processes all queued log messages- Specified by:
runin interfacejava.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:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Throws:
java.io.IOException
-
builder
public static DefaultAccessLogReceiver.Builder builder()
-
-