From 9f2edd81ce5bb0b79881116ab304102aa741c2fd Mon Sep 17 00:00:00 2001 From: Felix Barnsteiner Date: Sat, 31 Oct 2020 10:52:40 +0100 Subject: [PATCH] Add ecs.version closes #91 --- .../src/main/java/co/elastic/logging/EcsJsonSerializer.java | 4 ++++ .../test/java/co/elastic/logging/AbstractEcsLoggingTest.java | 1 + .../co/elastic/logging/jboss/logmanager/EcsFormatter.java | 1 + .../src/main/java/co/elastic/logging/jul/EcsFormatter.java | 1 + .../src/main/java/co/elastic/logging/log4j/EcsLayout.java | 1 + .../src/main/java/co/elastic/logging/log4j2/EcsLayout.java | 1 + .../src/main/java/co/elastic/logging/logback/EcsEncoder.java | 1 + 7 files changed, 10 insertions(+) diff --git a/ecs-logging-core/src/main/java/co/elastic/logging/EcsJsonSerializer.java b/ecs-logging-core/src/main/java/co/elastic/logging/EcsJsonSerializer.java index 850dd311..6d3df3ae 100644 --- a/ecs-logging-core/src/main/java/co/elastic/logging/EcsJsonSerializer.java +++ b/ecs-logging-core/src/main/java/co/elastic/logging/EcsJsonSerializer.java @@ -47,6 +47,10 @@ public static void serializeObjectStart(StringBuilder builder, long timeMillis) builder.append("\", "); } + public static void serializeEcsVersion(StringBuilder builder) { + builder.append("\"ecs.version\": \"1.2.0\","); + } + public static void serializeObjectEnd(StringBuilder builder) { removeIfEndsWith(builder, ","); builder.append('}'); diff --git a/ecs-logging-core/src/test/java/co/elastic/logging/AbstractEcsLoggingTest.java b/ecs-logging-core/src/test/java/co/elastic/logging/AbstractEcsLoggingTest.java index ba2cdeb5..08348a4d 100644 --- a/ecs-logging-core/src/test/java/co/elastic/logging/AbstractEcsLoggingTest.java +++ b/ecs-logging-core/src/test/java/co/elastic/logging/AbstractEcsLoggingTest.java @@ -51,6 +51,7 @@ void testMetadata() throws Exception { assertThat(getLastLogLine().get("log.level").textValue()).isEqualTo("DEBUG"); assertThat(getLastLogLine().get("log.logger")).isNotNull(); assertThat(getLastLogLine().get("event.dataset").textValue()).isEqualTo("testdataset.log"); + assertThat(getLastLogLine().get("ecs.version").textValue()).isEqualTo("1.2.0"); } @Test diff --git a/jboss-logmanager-ecs-formatter/src/main/java/co/elastic/logging/jboss/logmanager/EcsFormatter.java b/jboss-logmanager-ecs-formatter/src/main/java/co/elastic/logging/jboss/logmanager/EcsFormatter.java index 6164d69e..7ca37188 100644 --- a/jboss-logmanager-ecs-formatter/src/main/java/co/elastic/logging/jboss/logmanager/EcsFormatter.java +++ b/jboss-logmanager-ecs-formatter/src/main/java/co/elastic/logging/jboss/logmanager/EcsFormatter.java @@ -50,6 +50,7 @@ public String format(ExtLogRecord record) { EcsJsonSerializer.serializeObjectStart(builder, record.getMillis()); EcsJsonSerializer.serializeLogLevel(builder, record.getLevel().getName()); EcsJsonSerializer.serializeFormattedMessage(builder, record.getFormattedMessage()); + EcsJsonSerializer.serializeEcsVersion(builder); EcsJsonSerializer.serializeServiceName(builder, serviceName); EcsJsonSerializer.serializeEventDataset(builder, eventDataset); EcsJsonSerializer.serializeThreadName(builder, record.getThreadName()); diff --git a/jul-ecs-formatter/src/main/java/co/elastic/logging/jul/EcsFormatter.java b/jul-ecs-formatter/src/main/java/co/elastic/logging/jul/EcsFormatter.java index 940c5a54..d2daf244 100644 --- a/jul-ecs-formatter/src/main/java/co/elastic/logging/jul/EcsFormatter.java +++ b/jul-ecs-formatter/src/main/java/co/elastic/logging/jul/EcsFormatter.java @@ -58,6 +58,7 @@ public String format(final LogRecord record) { EcsJsonSerializer.serializeObjectStart(builder, record.getMillis()); EcsJsonSerializer.serializeLogLevel(builder, record.getLevel().getName()); EcsJsonSerializer.serializeFormattedMessage(builder, super.formatMessage(record)); + EcsJsonSerializer.serializeEcsVersion(builder); EcsJsonSerializer.serializeMDC(builder, mdcSupplier.getMDC()); EcsJsonSerializer.serializeServiceName(builder, serviceName); EcsJsonSerializer.serializeEventDataset(builder, eventDataset); diff --git a/log4j-ecs-layout/src/main/java/co/elastic/logging/log4j/EcsLayout.java b/log4j-ecs-layout/src/main/java/co/elastic/logging/log4j/EcsLayout.java index aee21222..40d67d33 100644 --- a/log4j-ecs-layout/src/main/java/co/elastic/logging/log4j/EcsLayout.java +++ b/log4j-ecs-layout/src/main/java/co/elastic/logging/log4j/EcsLayout.java @@ -43,6 +43,7 @@ public String format(LoggingEvent event) { EcsJsonSerializer.serializeObjectStart(builder, event.getTimeStamp()); EcsJsonSerializer.serializeLogLevel(builder, event.getLevel().toString()); EcsJsonSerializer.serializeFormattedMessage(builder, event.getRenderedMessage()); + EcsJsonSerializer.serializeEcsVersion(builder); EcsJsonSerializer.serializeServiceName(builder, serviceName); EcsJsonSerializer.serializeEventDataset(builder, eventDataset); EcsJsonSerializer.serializeThreadName(builder, event.getThreadName()); diff --git a/log4j2-ecs-layout/src/main/java/co/elastic/logging/log4j2/EcsLayout.java b/log4j2-ecs-layout/src/main/java/co/elastic/logging/log4j2/EcsLayout.java index 1e7827d1..308012c8 100644 --- a/log4j2-ecs-layout/src/main/java/co/elastic/logging/log4j2/EcsLayout.java +++ b/log4j2-ecs-layout/src/main/java/co/elastic/logging/log4j2/EcsLayout.java @@ -132,6 +132,7 @@ private StringBuilder toText(LogEvent event, StringBuilder builder, boolean gcFr EcsJsonSerializer.serializeObjectStart(builder, event.getTimeMillis()); EcsJsonSerializer.serializeLogLevel(builder, event.getLevel().toString()); serializeMessage(builder, gcFree, event.getMessage(), event.getThrown()); + EcsJsonSerializer.serializeEcsVersion(builder); EcsJsonSerializer.serializeServiceName(builder, serviceName); EcsJsonSerializer.serializeEventDataset(builder, eventDataset); EcsJsonSerializer.serializeThreadName(builder, event.getThreadName()); diff --git a/logback-ecs-encoder/src/main/java/co/elastic/logging/logback/EcsEncoder.java b/logback-ecs-encoder/src/main/java/co/elastic/logging/logback/EcsEncoder.java index b009e9e6..29382987 100644 --- a/logback-ecs-encoder/src/main/java/co/elastic/logging/logback/EcsEncoder.java +++ b/logback-ecs-encoder/src/main/java/co/elastic/logging/logback/EcsEncoder.java @@ -93,6 +93,7 @@ public byte[] encode(ILoggingEvent event) { EcsJsonSerializer.serializeObjectStart(builder, event.getTimeStamp()); EcsJsonSerializer.serializeLogLevel(builder, event.getLevel().toString()); EcsJsonSerializer.serializeFormattedMessage(builder, event.getFormattedMessage()); + EcsJsonSerializer.serializeEcsVersion(builder); serializeMarkers(event, builder); EcsJsonSerializer.serializeServiceName(builder, serviceName); EcsJsonSerializer.serializeEventDataset(builder, eventDataset);