aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/container/logging/AccessLogHandler.java
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2021-03-18 19:51:09 +0100
committergjoranv <gv@verizonmedia.com>2021-03-23 22:58:12 +0100
commit17349ba3ab25ff89ba449244242f9cacb4846bb1 (patch)
tree766cbd15def02af88e1a47820812e3f755d8348e /container-core/src/main/java/com/yahoo/container/logging/AccessLogHandler.java
parentc6d3b4003c5d5857817adb9db240ddd86bbc4348 (diff)
Add main java source from jdisc_http_service.
Diffstat (limited to 'container-core/src/main/java/com/yahoo/container/logging/AccessLogHandler.java')
-rw-r--r--container-core/src/main/java/com/yahoo/container/logging/AccessLogHandler.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/logging/AccessLogHandler.java b/container-core/src/main/java/com/yahoo/container/logging/AccessLogHandler.java
new file mode 100644
index 00000000000..89aab1513ee
--- /dev/null
+++ b/container-core/src/main/java/com/yahoo/container/logging/AccessLogHandler.java
@@ -0,0 +1,36 @@
+// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.container.logging;
+
+import com.yahoo.container.core.AccessLogConfig;
+
+/**
+ * @author Bjorn Borud
+ */
+class AccessLogHandler {
+
+ private final LogFileHandler<RequestLogEntry> logFileHandler;
+
+ AccessLogHandler(AccessLogConfig.FileHandler config, LogWriter<RequestLogEntry> logWriter) {
+ logFileHandler = new LogFileHandler<>(
+ toCompression(config), config.pattern(), config.rotation(),
+ config.symlink(), config.queueSize(), "request-logger", logWriter);
+ }
+
+ public void log(RequestLogEntry entry) {
+ logFileHandler.publish(entry);
+ }
+
+ private LogFileHandler.Compression toCompression(AccessLogConfig.FileHandler config) {
+ if (!config.compressOnRotation()) return LogFileHandler.Compression.NONE;
+ switch (config.compressionFormat()) {
+ case ZSTD: return LogFileHandler.Compression.ZSTD;
+ case GZIP: return LogFileHandler.Compression.GZIP;
+ default: throw new IllegalArgumentException(config.compressionFormat().toString());
+ }
+ }
+
+ void shutdown() {
+ logFileHandler.close();
+ logFileHandler.shutdown();
+ }
+}