From 0f07e96969e562962865686059bd4007dc0c161b Mon Sep 17 00:00:00 2001 From: Felix Barnsteiner Date: Thu, 6 Aug 2020 15:54:07 +0200 Subject: [PATCH 1/2] Support for Logback 1.1 --- .../co/elastic/logging/logback/EcsEncoder.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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 f8a144ae..bce264d4 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 @@ -33,6 +33,8 @@ import co.elastic.logging.JsonUtils; import org.slf4j.Marker; +import java.io.IOException; +import java.io.OutputStream; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Iterator; @@ -48,6 +50,7 @@ public class EcsEncoder extends EncoderBase { private ThrowableProxyConverter throwableProxyConverter; private boolean includeOrigin; private final List additionalFields = new ArrayList(); + private OutputStream os; @Override public byte[] headerBytes() { @@ -62,6 +65,20 @@ public void start() { eventDataset = EcsJsonSerializer.computeEventDataset(eventDataset, serviceName); } + // to support Logback 1.1 + public void init(OutputStream os) { + this.os = os; + } + + // to support Logback 1.1 + public void doEncode(ILoggingEvent event) throws IOException { + os.write(encode(event)); + } + + // to support Logback 1.1 + public void close() throws IOException { + } + @Override public byte[] encode(ILoggingEvent event) { StringBuilder builder = new StringBuilder(); From 2580ff74c9fe4c85051206588a00ed34c8cf98b4 Mon Sep 17 00:00:00 2001 From: Felix Barnsteiner Date: Fri, 30 Oct 2020 17:16:03 +0100 Subject: [PATCH 2/2] Clarify comments and change docs min version is 1.1 --- logback-ecs-encoder/README.md | 2 +- .../co/elastic/logging/logback/EcsEncoder.java | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/logback-ecs-encoder/README.md b/logback-ecs-encoder/README.md index 3980df8b..c2463b29 100644 --- a/logback-ecs-encoder/README.md +++ b/logback-ecs-encoder/README.md @@ -1,6 +1,6 @@ # ECS Logback Encoder -The minimum required logback version is 1.2. +The minimum required logback version is 1.1. ## Step 1: add dependency 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 bce264d4..b009e9e6 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 @@ -64,18 +64,26 @@ public void start() { throwableProxyConverter.start(); eventDataset = EcsJsonSerializer.computeEventDataset(eventDataset, serviceName); } - - // to support Logback 1.1 + /** + * This method has been removed in logback 1.2. + * To make this lib backwards compatible with logback 1.1 we have implement this method. + */ public void init(OutputStream os) { this.os = os; } - // to support Logback 1.1 + /** + * This method has been removed in logback 1.2. + * To make this lib backwards compatible with logback 1.1 we have implement this method. + */ public void doEncode(ILoggingEvent event) throws IOException { os.write(encode(event)); } - // to support Logback 1.1 + /** + * This method has been removed in logback 1.2. + * To make this lib backwards compatible with logback 1.1 we have implement this method. + */ public void close() throws IOException { }