summaryrefslogtreecommitdiffstats
path: root/jdisc_http_service/src/main/java/com/yahoo/container/logging/AccessLogHandler.java
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorn.christian@seime.no>2021-01-11 16:46:32 +0100
committerGitHub <noreply@github.com>2021-01-11 16:46:32 +0100
commitbd9d35c912d4c08c8e73b876348278fa968eceaa (patch)
tree14efcf04271a543c4bad424a9c42593529162abf /jdisc_http_service/src/main/java/com/yahoo/container/logging/AccessLogHandler.java
parentb8e785bc4df2af25e317e19b23d9f12c83dbdf6e (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.java48
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();
+ }
+}