summaryrefslogtreecommitdiffstats
path: root/container-accesslogging
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@oath.com>2017-11-14 18:00:17 +0100
committerBjørn Christian Seime <bjorncs@oath.com>2017-11-15 10:27:07 +0100
commit30763962a15cc2a1f2daf42c183a0ef862047783 (patch)
tree60c8c1ff85052b3538882a49fc2e8e119e2e62f1 /container-accesslogging
parent1741e47163644d01db6a67f458427c8aafe8f0b4 (diff)
Add 'secure' and 'local-port' to JSON access log
Diffstat (limited to 'container-accesslogging')
-rw-r--r--container-accesslogging/src/main/java/com/yahoo/container/logging/AccessLogEntry.java38
-rw-r--r--container-accesslogging/src/main/java/com/yahoo/container/logging/JSONFormatter.java2
-rw-r--r--container-accesslogging/src/test/java/com/yahoo/container/logging/JSONLogTestCase.java10
3 files changed, 45 insertions, 5 deletions
diff --git a/container-accesslogging/src/main/java/com/yahoo/container/logging/AccessLogEntry.java b/container-accesslogging/src/main/java/com/yahoo/container/logging/AccessLogEntry.java
index 38c341a6a3e..f1c727ce5ff 100644
--- a/container-accesslogging/src/main/java/com/yahoo/container/logging/AccessLogEntry.java
+++ b/container-accesslogging/src/main/java/com/yahoo/container/logging/AccessLogEntry.java
@@ -1,6 +1,9 @@
// 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.collections.ListMap;
+import org.apache.commons.lang.builder.ReflectionToStringBuilder;
+
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.URI;
@@ -10,11 +13,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import com.yahoo.collections.ListMap;
-import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import static java.util.stream.Collectors.toMap;
@@ -32,6 +30,7 @@ import static java.util.stream.Collectors.toMap;
*
* @author tonytv
* @author bakksjo
+ * @author bjorncs
*/
public class AccessLogEntry {
public enum CookieType {
@@ -91,6 +90,8 @@ public class AccessLogEntry {
private String zDataIncrementSlotByOneRequest;
private String hostString;
private int statusCode;
+ private String scheme;
+ private int localPort;
private ListMap<String,String> keyValues=null;
@@ -682,6 +683,32 @@ public class AccessLogEntry {
}
}
+ public String getScheme() {
+ synchronized (monitor) {
+ return scheme;
+ }
+ }
+
+ public void setScheme(String scheme) {
+ synchronized (monitor) {
+ requireNull(this.scheme);
+ this.scheme = scheme;
+ }
+ }
+
+ public int getLocalPort() {
+ synchronized (monitor) {
+ return localPort;
+ }
+ }
+
+ public void setLocalPort(int localPort) {
+ synchronized (monitor) {
+ requireZero(this.localPort);
+ this.localPort = localPort;
+ }
+ }
+
@Override
public String toString() {
synchronized (monitor) {
@@ -708,4 +735,5 @@ public class AccessLogEntry {
throw new IllegalStateException("Attempt to overwrite field that has been assigned. Value: " + value);
}
}
+
}
diff --git a/container-accesslogging/src/main/java/com/yahoo/container/logging/JSONFormatter.java b/container-accesslogging/src/main/java/com/yahoo/container/logging/JSONFormatter.java
index 450369d998f..a328f0d34bd 100644
--- a/container-accesslogging/src/main/java/com/yahoo/container/logging/JSONFormatter.java
+++ b/container-accesslogging/src/main/java/com/yahoo/container/logging/JSONFormatter.java
@@ -56,6 +56,8 @@ public class JSONFormatter {
generator.writeStringField("version", accessLogEntry.getHttpVersion());
generator.writeStringField("agent", accessLogEntry.getUserAgent());
generator.writeStringField("host", accessLogEntry.getHostString());
+ generator.writeStringField("scheme", accessLogEntry.getScheme());
+ generator.writeNumberField("localport", accessLogEntry.getLocalPort());
// Only add remote address/port fields if relevant
if (remoteAddressDiffers(accessLogEntry.getIpV4Address(), accessLogEntry.getRemoteAddress())) {
diff --git a/container-accesslogging/src/test/java/com/yahoo/container/logging/JSONLogTestCase.java b/container-accesslogging/src/test/java/com/yahoo/container/logging/JSONLogTestCase.java
index 2d092d5a205..ae27d7b1814 100644
--- a/container-accesslogging/src/test/java/com/yahoo/container/logging/JSONLogTestCase.java
+++ b/container-accesslogging/src/test/java/com/yahoo/container/logging/JSONLogTestCase.java
@@ -48,6 +48,8 @@ public class JSONLogTestCase extends junit.framework.TestCase {
"\"version\":\"HTTP/1.1\"," +
"\"agent\":\"Mozilla/4.05 [en] (Win95; I)\"," +
"\"host\":\"localhost\"," +
+ "\"scheme\":null," +
+ "\"localport\":0," +
"\"search\":{" +
"\"totalhits\":1234," +
"\"hits\":0" +
@@ -74,6 +76,8 @@ public class JSONLogTestCase extends junit.framework.TestCase {
"\"version\":\"HTTP/1.1\"," +
"\"agent\":\"Mozilla/4.05 [en] (Win95; I)\"," +
"\"host\":\"localhost\"," +
+ "\"scheme\":null," +
+ "\"localport\":0," +
"\"search\":{" +
"\"totalhits\":1234," +
"\"hits\":0" +
@@ -104,6 +108,8 @@ public class JSONLogTestCase extends junit.framework.TestCase {
"\"version\":\"HTTP/1.1\"," +
"\"agent\":\"Mozilla/4.05 [en] (Win95; I)\"," +
"\"host\":\"localhost\"," +
+ "\"scheme\":null," +
+ "\"localport\":0," +
"\"remoteaddr\":\"FE80:0000:0000:0000:0202:B3FF:FE1E:8329\"," +
"\"search\":{" +
"\"totalhits\":1234," +
@@ -127,6 +133,8 @@ public class JSONLogTestCase extends junit.framework.TestCase {
"\"version\":\"HTTP/1.1\"," +
"\"agent\":\"Mozilla/4.05 [en] (Win95; I)\"," +
"\"host\":\"localhost\"," +
+ "\"scheme\":null," +
+ "\"localport\":0," +
"\"remoteaddr\":\"FE80:0000:0000:0000:0202:B3FF:FE1E:8329\"," +
"\"remoteport\":1234," +
"\"search\":{" +
@@ -171,6 +179,8 @@ public class JSONLogTestCase extends junit.framework.TestCase {
"\"version\":\"HTTP/1.1\"," +
"\"agent\":\"Mozilla/4.05 [en] (Win95; I; \\\"Best Browser Ever\\\")\"," +
"\"host\":\"localhost\"," +
+ "\"scheme\":null," +
+ "\"localport\":0," +
"\"search\":{" +
"\"totalhits\":1234," +
"\"hits\":0" +