diff options
author | Bjørn Christian Seime <bjorn.christian@seime.no> | 2021-01-11 16:46:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-11 16:46:32 +0100 |
commit | bd9d35c912d4c08c8e73b876348278fa968eceaa (patch) | |
tree | 14efcf04271a543c4bad424a9c42593529162abf /jdisc_http_service/src/main/java/com/yahoo/container/logging/AccessLogHandler.java | |
parent | b8e785bc4df2af25e317e19b23d9f12c83dbdf6e (diff) |
Revert "Revert "Merge container-accesslogging into jdisc_http_service""
Diffstat (limited to 'jdisc_http_service/src/main/java/com/yahoo/container/logging/AccessLogHandler.java')
-rw-r--r-- | jdisc_http_service/src/main/java/com/yahoo/container/logging/AccessLogHandler.java | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/jdisc_http_service/src/main/java/com/yahoo/container/logging/AccessLogHandler.java b/jdisc_http_service/src/main/java/com/yahoo/container/logging/AccessLogHandler.java new file mode 100644 index 00000000000..488a6137cc2 --- /dev/null +++ b/jdisc_http_service/src/main/java/com/yahoo/container/logging/AccessLogHandler.java @@ -0,0 +1,48 @@ +// 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; + +import java.util.logging.Logger; + +/** + * @author Bjorn Borud + */ +class AccessLogHandler { + + public Logger access = Logger.getAnonymousLogger(); + private LogFileHandler logFileHandler; + + public AccessLogHandler(AccessLogConfig.FileHandler config) { + access.setUseParentHandlers(false); + + logFileHandler = new LogFileHandler(config.compressOnRotation()); + + logFileHandler.setFilePattern(config.pattern()); + logFileHandler.setRotationTimes(config.rotation()); + + createSymlink(config, logFileHandler); + + LogFormatter lf = new LogFormatter(); + lf.messageOnly(true); + this.logFileHandler.setFormatter(lf); + access.addHandler(this.logFileHandler); + } + + private void createSymlink(AccessLogConfig.FileHandler config, LogFileHandler handler) { + if (!config.symlink().isEmpty()) + handler.setSymlinkName(config.symlink()); + } + + public void shutdown() { + logFileHandler.close(); + access.removeHandler(logFileHandler); + + if (logFileHandler!=null) + logFileHandler.shutdown(); + } + + void rotateNow() { + logFileHandler.rotateNow(); + } +} |