diff options
author | gjoranv <gv@verizonmedia.com> | 2021-03-18 19:51:09 +0100 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2021-03-23 22:58:12 +0100 |
commit | 17349ba3ab25ff89ba449244242f9cacb4846bb1 (patch) | |
tree | 766cbd15def02af88e1a47820812e3f755d8348e /container-core/src/main/java/com/yahoo/container/logging/AccessLogHandler.java | |
parent | c6d3b4003c5d5857817adb9db240ddd86bbc4348 (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.java | 36 |
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(); + } +} |