Class DefaultAccessLogReceiver
java.lang.Object
io.quarkus.vertx.http.runtime.filters.accesslog.DefaultAccessLogReceiver
- All Implemented Interfaces:
AccessLogReceiver
,Closeable
,AutoCloseable
,Runnable
public class DefaultAccessLogReceiver
extends Object
implements AccessLogReceiver, Runnable, 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 -
Constructor Summary
ConstructorsConstructorDescriptionDefaultAccessLogReceiver
(Executor logWriteExecutor, File outputDirectory, String logBaseName) DefaultAccessLogReceiver
(Executor logWriteExecutor, File outputDirectory, String logBaseName, String logNameSuffix) DefaultAccessLogReceiver
(Executor logWriteExecutor, File outputDirectory, String logBaseName, String logNameSuffix, boolean rotate) DefaultAccessLogReceiver
(Executor logWriteExecutor, Path outputDirectory, String logBaseName) DefaultAccessLogReceiver
(Executor logWriteExecutor, Path outputDirectory, String logBaseName, String logNameSuffix) DefaultAccessLogReceiver
(Executor logWriteExecutor, Path outputDirectory, String logBaseName, String logNameSuffix, boolean rotate) -
Method Summary
-
Constructor Details
-
DefaultAccessLogReceiver
-
DefaultAccessLogReceiver
-
DefaultAccessLogReceiver
-
DefaultAccessLogReceiver
-
DefaultAccessLogReceiver
-
DefaultAccessLogReceiver
-
-
Method Details
-
logMessage
- Specified by:
logMessage
in interfaceAccessLogReceiver
-
run
public void run()processes all queued log messages -
awaitWrittenForTest
For tests only. Blocks the current thread until all messages are written Just does a busy wait. DO NOT USE THIS OUTSIDE OF A TEST- Throws:
InterruptedException
-
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
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-
builder
-