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 class
DefaultAccessLogReceiver.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.Builder
builder()
void
close()
void
logMessage(java.lang.String message)
void
rotate()
forces a log rotation.void
run()
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:
logMessage
in interfaceAccessLogReceiver
-
run
public void run()
processes all queued log messages- Specified by:
run
in 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:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Throws:
java.io.IOException
-
builder
public static DefaultAccessLogReceiver.Builder builder()
-
-