aboutsummaryrefslogtreecommitdiffstats
path: root/jdisc_http_service/src/main/java/com/yahoo
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-01-21 11:04:03 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-01-21 13:31:52 +0100
commit4c514714e3e739c66f0107629d44ef5e5877403a (patch)
tree1831864072336b2fdc3fd53a27282c9a38800fa5 /jdisc_http_service/src/main/java/com/yahoo
parentbe41683f5efb4146ec1d85e41011d61b73d9c8da (diff)
Introduce RequestLog interface
Diffstat (limited to 'jdisc_http_service/src/main/java/com/yahoo')
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/container/logging/AccessLog.java9
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/container/logging/RequestLog.java15
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java12
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java5
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/VoidRequestLog.java16
5 files changed, 48 insertions, 9 deletions
diff --git a/jdisc_http_service/src/main/java/com/yahoo/container/logging/AccessLog.java b/jdisc_http_service/src/main/java/com/yahoo/container/logging/AccessLog.java
index 5c1a549070c..f60c52f7f38 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/container/logging/AccessLog.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/container/logging/AccessLog.java
@@ -9,8 +9,9 @@ import com.yahoo.component.provider.ComponentRegistry;
* Logs to all the configured access logs.
*
* @author Tony Vaagenes
+ * @author bjorncs
*/
-public class AccessLog {
+public class AccessLog implements RequestLog {
private ComponentRegistry<AccessLogInterface> implementers;
@@ -23,10 +24,16 @@ public class AccessLog {
return new AccessLog(new ComponentRegistry<>());
}
+ @Override
public void log(AccessLogEntry accessLogEntry) {
for (AccessLogInterface log: implementers.allComponents()) {
log.log(accessLogEntry);
}
}
+ @Override
+ public void log(RequestLogEntry entry) {
+ // TODO Implement
+ }
+
}
diff --git a/jdisc_http_service/src/main/java/com/yahoo/container/logging/RequestLog.java b/jdisc_http_service/src/main/java/com/yahoo/container/logging/RequestLog.java
new file mode 100644
index 00000000000..f1036dcb880
--- /dev/null
+++ b/jdisc_http_service/src/main/java/com/yahoo/container/logging/RequestLog.java
@@ -0,0 +1,15 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.container.logging;
+
+/**
+ * Access logging for requests
+ *
+ * @author bjorncs
+ */
+public interface RequestLog {
+
+ void log(AccessLogEntry entry);
+
+ void log(RequestLogEntry entry);
+
+}
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java
index 32790534f86..fb4db5a6307 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java
@@ -4,10 +4,10 @@ package com.yahoo.jdisc.http.server.jetty;
import com.google.common.base.Objects;
import com.yahoo.container.logging.AccessLog;
import com.yahoo.container.logging.AccessLogEntry;
+import com.yahoo.container.logging.RequestLog;
import com.yahoo.jdisc.http.ServerConfig;
import com.yahoo.jdisc.http.servlet.ServletRequest;
import org.eclipse.jetty.server.Request;
-import org.eclipse.jetty.server.RequestLog;
import org.eclipse.jetty.server.Response;
import org.eclipse.jetty.util.component.AbstractLifeCycle;
@@ -30,19 +30,19 @@ import static com.yahoo.jdisc.http.core.HttpServletRequestUtils.getConnectorLoca
* @author Oyvind Bakksjo
* @author bjorncs
*/
-class AccessLogRequestLog extends AbstractLifeCycle implements RequestLog {
+class AccessLogRequestLog extends AbstractLifeCycle implements org.eclipse.jetty.server.RequestLog {
private static final Logger logger = Logger.getLogger(AccessLogRequestLog.class.getName());
// HTTP headers that are logged as extra key-value-pairs in access log entries
private static final List<String> LOGGED_REQUEST_HEADERS = List.of("Vespa-Client-Version");
- private final AccessLog accessLog;
+ private final RequestLog requestLog;
private final List<String> remoteAddressHeaders;
private final List<String> remotePortHeaders;
- AccessLogRequestLog(AccessLog accessLog, ServerConfig.AccessLog config) {
- this.accessLog = accessLog;
+ AccessLogRequestLog(RequestLog requestLog, ServerConfig.AccessLog config) {
+ this.requestLog = requestLog;
this.remoteAddressHeaders = config.remoteAddressHeaders();
this.remotePortHeaders = config.remotePortHeaders();
}
@@ -126,7 +126,7 @@ class AccessLogRequestLog extends AbstractLifeCycle implements RequestLog {
accessLogEntry.setConnectionId(connectionId.toString());
}
- accessLog.log(accessLogEntry);
+ requestLog.log(accessLogEntry);
} catch (Exception e) {
// Catching any exceptions here as it is unclear how Jetty handles exceptions from a RequestLog.
logger.log(Level.SEVERE, "Failed to log access log entry: " + e.getMessage(), e);
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
index 1e077c32ea1..510c561c10f 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
@@ -7,6 +7,7 @@ import com.yahoo.component.provider.ComponentRegistry;
import com.yahoo.concurrent.DaemonThreadFactory;
import com.yahoo.container.logging.AccessLog;
import com.yahoo.container.logging.ConnectionLog;
+import com.yahoo.container.logging.RequestLog;
import com.yahoo.jdisc.Metric;
import com.yahoo.jdisc.http.ConnectorConfig;
import com.yahoo.jdisc.http.ServerConfig;
@@ -73,7 +74,7 @@ public class JettyHttpServer extends AbstractServerProvider {
ComponentRegistry<ConnectorFactory> connectorFactories,
ComponentRegistry<ServletHolder> servletHolders,
FilterInvoker filterInvoker,
- AccessLog accessLog,
+ RequestLog requestLog,
ConnectionLog connectionLog) {
super(container);
if (connectorFactories.allComponents().isEmpty())
@@ -83,7 +84,7 @@ public class JettyHttpServer extends AbstractServerProvider {
server = new Server();
server.setStopTimeout((long)(serverConfig.stopTimeout() * 1000.0));
- server.setRequestLog(new AccessLogRequestLog(accessLog, serverConfig.accessLog()));
+ server.setRequestLog(new AccessLogRequestLog(requestLog, serverConfig.accessLog()));
setupJmx(server, serverConfig);
configureJettyThreadpool(server, serverConfig);
JettyConnectionLogger connectionLogger = new JettyConnectionLogger(serverConfig.connectionLog(), connectionLog);
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/VoidRequestLog.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/VoidRequestLog.java
new file mode 100644
index 00000000000..f0ebf562fae
--- /dev/null
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/VoidRequestLog.java
@@ -0,0 +1,16 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.jdisc.http.server.jetty;
+
+import com.yahoo.container.logging.AccessLogEntry;
+import com.yahoo.container.logging.RequestLog;
+import com.yahoo.container.logging.RequestLogEntry;
+
+/**
+ * @author bjorncs
+ */
+public class VoidRequestLog implements RequestLog {
+
+ @Override public void log(AccessLogEntry entry) {}
+ @Override public void log(RequestLogEntry entry) {}
+
+}