diff options
Diffstat (limited to 'container-accesslogging/src/main/java/com/yahoo/container/logging/JSONFormatter.java')
-rw-r--r-- | container-accesslogging/src/main/java/com/yahoo/container/logging/JSONFormatter.java | 14 |
1 files changed, 14 insertions, 0 deletions
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..cca8da2e936 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 @@ -11,6 +11,8 @@ import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; import java.net.URI; +import java.security.Principal; +import java.time.Instant; import java.util.List; import java.util.Map; import java.util.Objects; @@ -47,6 +49,8 @@ public class JSONFormatter { generator.writeStartObject(); generator.writeStringField("ip", accessLogEntry.getIpV4Address()); generator.writeNumberField("time", toTimestampInSeconds(accessLogEntry.getTimeStampMillis())); + generator.writeStringField("time-iso8601", + Instant.ofEpochMilli(accessLogEntry.getTimeStampMillis()).toString()); generator.writeNumberField("duration", durationAsSeconds(accessLogEntry.getDurationBetweenRequestResponseMillis())); generator.writeNumberField("responsesize", accessLogEntry.getReturnedContentSize()); @@ -56,6 +60,16 @@ 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()); + + Principal principal = accessLogEntry.getUserPrincipal(); + if (principal != null) { + generator.writeObjectFieldStart("user-principal"); + generator.writeStringField("name", principal.getName()); + generator.writeStringField("type", principal.getClass().getName()); + generator.writeEndObject(); + } // Only add remote address/port fields if relevant if (remoteAddressDiffers(accessLogEntry.getIpV4Address(), accessLogEntry.getRemoteAddress())) { |