diff --git a/docs/tab-widgets/ecs-encoder.asciidoc b/docs/tab-widgets/ecs-encoder.asciidoc index 3d73e6e5..41a553b2 100644 --- a/docs/tab-widgets/ecs-encoder.asciidoc +++ b/docs/tab-widgets/ecs-encoder.asciidoc @@ -39,6 +39,7 @@ All you have to do is to use the `co.elastic.logging.logback.EcsEncoder` instead ---- my-application + my-application-cluster-node ---- @@ -52,6 +53,11 @@ All you have to do is to use the `co.elastic.logging.logback.EcsEncoder` instead | |Sets the `service.name` field so you can filter your logs by a particular service +|`serviceNodeName` +|String +| +|Sets the `service.node.name` field so you can filter your logs by a particular node of your clustered service + |`eventDataset` |String |`${serviceName}.log` @@ -102,10 +108,10 @@ For example: - + - + @@ -127,6 +133,11 @@ For example: | |Sets the `service.name` field so you can filter your logs by a particular service +|`serviceNodeName` +|String +| +|Sets the `service.node.name` field so you can filter your logs by a particular node of your clustered service + |`eventDataset` |String |`${serviceName}.log` @@ -180,12 +191,14 @@ For example: + + @@ -207,6 +220,11 @@ For example: | |Sets the `service.name` field so you can filter your logs by a particular service +|`serviceNodeName` +|String +| +|Sets the `service.node.name` field so you can filter your logs by a particular node of your clustered service + |`eventDataset` |String |`${serviceName}.log` @@ -249,6 +267,7 @@ For example, in `$CATALINA_HOME/conf/logging.properties`: java.util.logging.ConsoleHandler.level = FINE java.util.logging.ConsoleHandler.formatter = co.elastic.logging.jul.EcsFormatter co.elastic.logging.jul.EcsFormatter.serviceName=my-app +co.elastic.logging.jul.EcsFormatter.serviceNodeName=my-app-cluster-node ---- **Layout Parameters** @@ -261,6 +280,11 @@ co.elastic.logging.jul.EcsFormatter.serviceName=my-app | |Sets the `service.name` field so you can filter your logs by a particular service +|`serviceNodeName` +|String +| +|Sets the `service.node.name` field so you can filter your logs by a particular node of your clustered service + |`eventDataset` |String |`${serviceName}.log` @@ -301,7 +325,8 @@ Add the formatter to a handler in the logging subsystem: [source,bash] ---- -$WILDFLY_HOME/bin/jboss-cli.sh -c '/subsystem=logging/custom-formatter=ECS:add(module=co.elastic.logging.jboss-logmanager-ecs-formatter, class=co.elastic.logging.jboss.logmanager.EcsFormatter, properties={serviceName=my-app}),\ +$WILDFLY_HOME/bin/jboss-cli.sh -c '/subsystem=logging/custom-formatter=ECS:add(module=co.elastic.logging.jboss-logmanager-ecs-formatter, +class=co.elastic.logging.jboss.logmanager.EcsFormatter, properties={serviceName=my-app,serviceNodeName=my-app-cluster-node}),\ /subsystem=logging/console-handler=CONSOLE:write-attribute(name=named-formatter,value=ECS)' ---- @@ -315,6 +340,11 @@ $WILDFLY_HOME/bin/jboss-cli.sh -c '/subsystem=logging/custom-formatter=ECS:add(m | |Sets the `service.name` field so you can filter your logs by a particular service +|`serviceNodeName` +|String +| +|Sets the `service.node.name` field so you can filter your logs by a particular node of your clustered service + |`eventDataset` |String |`${serviceName}.log` 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 6cf400aa..e026d471 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 @@ -87,13 +87,25 @@ public static void serializeFormattedMessage(StringBuilder builder, String messa public static void serializeServiceName(StringBuilder builder, String serviceName) { if (serviceName != null) { - builder.append("\"service.name\":\"").append(serviceName).append("\","); + builder.append("\"service.name\":\""); + JsonUtils.quoteAsString(serviceName, builder); + builder.append("\","); + } + } + + public static void serializeServiceNodeName(StringBuilder builder, String serviceNodeName) { + if (serviceNodeName != null) { + builder.append("\"service.node.name\":\""); + JsonUtils.quoteAsString(serviceNodeName, builder); + builder.append("\","); } } public static void serializeEventDataset(StringBuilder builder, String eventDataset) { if (eventDataset != null) { - builder.append("\"event.dataset\":\"").append(eventDataset).append("\","); + builder.append("\"event.dataset\":\""); + JsonUtils.quoteAsString(eventDataset, 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 653c5073..3b910429 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 @@ -57,6 +57,7 @@ void testMetadata() throws Exception { debug("test"); assertThat(getAndValidateLastLogLine().get("process.thread.name").textValue()).isEqualTo(Thread.currentThread().getName()); assertThat(getAndValidateLastLogLine().get("service.name").textValue()).isEqualTo("test"); + assertThat(getAndValidateLastLogLine().get("service.node.name").textValue()).isEqualTo("test-node"); assertThat(Instant.parse(getAndValidateLastLogLine().get("@timestamp").textValue())).isCloseTo(Instant.now(), within(1, ChronoUnit.MINUTES)); assertThat(getAndValidateLastLogLine().get("log.level").textValue()).isIn("DEBUG", "FINE"); assertThat(getAndValidateLastLogLine().get("log.logger")).isNotNull(); diff --git a/ecs-logging-core/src/test/java/co/elastic/logging/EcsJsonSerializerTest.java b/ecs-logging-core/src/test/java/co/elastic/logging/EcsJsonSerializerTest.java index 4ae7ab72..0a324a6c 100644 --- a/ecs-logging-core/src/test/java/co/elastic/logging/EcsJsonSerializerTest.java +++ b/ecs-logging-core/src/test/java/co/elastic/logging/EcsJsonSerializerTest.java @@ -32,6 +32,7 @@ import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; +import java.util.List; import java.util.stream.Collectors; import java.util.stream.StreamSupport; @@ -55,6 +56,37 @@ void serializeExceptionAsString() throws IOException { assertThat(jsonNode.get("error.stack_trace").textValue()).isEqualTo(stringWriter.toString()); } + @Test + void testEscaping() throws IOException { + String loggerName = "logger\""; + String serviceName = "test\""; + String serviceNodeName = "test-node\""; + String eventDataset = "event-dataset\""; + String threadName = "event-dataset\""; + String additionalKey = "key\""; + String additionalValue = "=value\""; + + StringBuilder jsonBuilder = new StringBuilder(); + jsonBuilder.append('{'); + EcsJsonSerializer.serializeLoggerName(jsonBuilder, loggerName); + EcsJsonSerializer.serializeServiceName(jsonBuilder, serviceName); + EcsJsonSerializer.serializeServiceNodeName(jsonBuilder, serviceNodeName); + EcsJsonSerializer.serializeEventDataset(jsonBuilder, eventDataset); + EcsJsonSerializer.serializeThreadName(jsonBuilder, threadName); + EcsJsonSerializer.serializeAdditionalFields(jsonBuilder, List.of(new AdditionalField(additionalKey, additionalValue))); + EcsJsonSerializer.serializeObjectEnd(jsonBuilder); + jsonBuilder.append('}'); + JsonNode jsonNode = new ObjectMapper().readTree(jsonBuilder.toString()); + + assertThat(jsonNode.get("log.logger").textValue()).isEqualTo(loggerName); + assertThat(jsonNode.get("service.name").textValue()).isEqualTo(serviceName); + assertThat(jsonNode.get("service.node.name").textValue()).isEqualTo(serviceNodeName); + assertThat(jsonNode.get("event.dataset").textValue()).isEqualTo(eventDataset); + assertThat(jsonNode.get("process.thread.name").textValue()).isEqualTo(eventDataset); + assertThat(jsonNode.get("process.thread.name").textValue()).isEqualTo(eventDataset); + assertThat(jsonNode.get(additionalKey).textValue()).isEqualTo(additionalValue); + } + @Test void serializeNullDoesNotThrowAnException() throws JsonProcessingException { StringBuilder stringBuilder = new StringBuilder(); 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 34f99e35..fbb1497a 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 @@ -37,6 +37,7 @@ public class EcsFormatter extends ExtFormatter { private String serviceName; + private String serviceNodeName; private String eventDataset; private List additionalFields = Collections.emptyList(); private boolean includeOrigin; @@ -44,6 +45,7 @@ public class EcsFormatter extends ExtFormatter { public EcsFormatter() { serviceName = getProperty("co.elastic.logging.jboss.logmanager.EcsFormatter.serviceName", null); + serviceNodeName = getProperty("co.elastic.logging.jboss.logmanager.EcsFormatter.serviceNodeName", null); eventDataset = getProperty("co.elastic.logging.jboss.logmanager.EcsFormatter.eventDataset", null); eventDataset = EcsJsonSerializer.computeEventDataset(eventDataset, serviceName); includeOrigin = Boolean.getBoolean(getProperty("co.elastic.logging.jboss.logmanager.EcsFormatter.includeOrigin", "false")); @@ -58,6 +60,7 @@ public String format(ExtLogRecord record) { EcsJsonSerializer.serializeFormattedMessage(builder, record.getFormattedMessage()); EcsJsonSerializer.serializeEcsVersion(builder); EcsJsonSerializer.serializeServiceName(builder, serviceName); + EcsJsonSerializer.serializeServiceNodeName(builder, serviceNodeName); EcsJsonSerializer.serializeEventDataset(builder, eventDataset); EcsJsonSerializer.serializeThreadName(builder, record.getThreadName()); EcsJsonSerializer.serializeLoggerName(builder, record.getLoggerName()); @@ -91,6 +94,10 @@ public void setServiceName(final String serviceName) { eventDataset = EcsJsonSerializer.computeEventDataset(eventDataset, serviceName); } + public void setServiceNodeName(final String serviceNodeName) { + this.serviceNodeName = serviceNodeName; + } + public void setStackTraceAsArray(final boolean stackTraceAsArray) { this.stackTraceAsArray = stackTraceAsArray; } diff --git a/jboss-logmanager-ecs-formatter/src/test/java/co/elastic/logging/jboss/logmanager/JBossLogManagerTest.java b/jboss-logmanager-ecs-formatter/src/test/java/co/elastic/logging/jboss/logmanager/JBossLogManagerTest.java index 0350fc17..f6657fc9 100644 --- a/jboss-logmanager-ecs-formatter/src/test/java/co/elastic/logging/jboss/logmanager/JBossLogManagerTest.java +++ b/jboss-logmanager-ecs-formatter/src/test/java/co/elastic/logging/jboss/logmanager/JBossLogManagerTest.java @@ -89,6 +89,7 @@ public JsonNode getLastLogLine() throws IOException { void setUp() { formatter.setIncludeOrigin(true); formatter.setServiceName("test"); + formatter.setServiceNodeName("test-node"); formatter.setEventDataset("testdataset.log"); formatter.setAdditionalFields("key1=value1,key2=value2"); 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 5362d74d..5a3df380 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 @@ -40,6 +40,7 @@ public class EcsFormatter extends Formatter { private boolean stackTraceAsArray; private String serviceName; + private String serviceNodeName; private boolean includeOrigin; private String eventDataset; private List additionalFields = Collections.emptyList(); @@ -49,6 +50,7 @@ public class EcsFormatter extends Formatter { */ public EcsFormatter() { serviceName = getProperty("co.elastic.logging.jul.EcsFormatter.serviceName", null); + serviceNodeName = getProperty("co.elastic.logging.jul.EcsFormatter.serviceNodeName", null); includeOrigin = Boolean.getBoolean(getProperty("co.elastic.logging.jul.EcsFormatter.includeOrigin", "false")); stackTraceAsArray = Boolean .getBoolean(getProperty("co.elastic.logging.jul.EcsFormatter.stackTraceAsArray", "false")); @@ -67,6 +69,7 @@ public String format(final LogRecord record) { EcsJsonSerializer.serializeAdditionalFields(builder, additionalFields); EcsJsonSerializer.serializeMDC(builder, mdcSupplier.getMDC()); EcsJsonSerializer.serializeServiceName(builder, serviceName); + EcsJsonSerializer.serializeServiceNodeName(builder, serviceNodeName); EcsJsonSerializer.serializeEventDataset(builder, eventDataset); if (Thread.currentThread().getId() == record.getThreadID()) { EcsJsonSerializer.serializeThreadName(builder, Thread.currentThread().getName()); @@ -93,6 +96,10 @@ protected void setServiceName(final String serviceName) { this.serviceName = serviceName; } + protected void setServiceNodeName(final String serviceNodeName) { + this.serviceNodeName = serviceNodeName; + } + protected void setStackTraceAsArray(final boolean stackTraceAsArray) { this.stackTraceAsArray = stackTraceAsArray; } diff --git a/jul-ecs-formatter/src/test/java/co/elastic/logging/jul/JulLoggingTest.java b/jul-ecs-formatter/src/test/java/co/elastic/logging/jul/JulLoggingTest.java index 37887492..61d7c3de 100644 --- a/jul-ecs-formatter/src/test/java/co/elastic/logging/jul/JulLoggingTest.java +++ b/jul-ecs-formatter/src/test/java/co/elastic/logging/jul/JulLoggingTest.java @@ -112,6 +112,7 @@ void setUp() { formatter.setIncludeOrigin(true); formatter.setServiceName("test"); + formatter.setServiceNodeName("test-node"); formatter.setEventDataset("testdataset.log"); formatter.setAdditionalFields("key1=value1,key2=value2"); 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 6be4cb41..a97892fa 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 @@ -40,6 +40,7 @@ public class EcsLayout extends Layout { private boolean stackTraceAsArray = false; private String serviceName; + private String serviceNodeName; private boolean includeOrigin; private String eventDataset; private List additionalFields = new ArrayList(); @@ -52,6 +53,7 @@ public String format(LoggingEvent event) { EcsJsonSerializer.serializeFormattedMessage(builder, event.getRenderedMessage()); EcsJsonSerializer.serializeEcsVersion(builder); EcsJsonSerializer.serializeServiceName(builder, serviceName); + EcsJsonSerializer.serializeServiceNodeName(builder, serviceNodeName); EcsJsonSerializer.serializeEventDataset(builder, eventDataset); EcsJsonSerializer.serializeThreadName(builder, event.getThreadName()); EcsJsonSerializer.serializeLoggerName(builder, event.categoryName); @@ -99,6 +101,10 @@ public void setServiceName(String serviceName) { this.serviceName = serviceName; } + public void setServiceNodeName(String serviceNodeName) { + this.serviceNodeName = serviceNodeName; + } + public void setIncludeOrigin(boolean includeOrigin) { this.includeOrigin = includeOrigin; } diff --git a/log4j-ecs-layout/src/test/java/co/elastic/logging/log4j/Log4jEcsLayoutTest.java b/log4j-ecs-layout/src/test/java/co/elastic/logging/log4j/Log4jEcsLayoutTest.java index 0796c5bd..43e7ce2e 100644 --- a/log4j-ecs-layout/src/test/java/co/elastic/logging/log4j/Log4jEcsLayoutTest.java +++ b/log4j-ecs-layout/src/test/java/co/elastic/logging/log4j/Log4jEcsLayoutTest.java @@ -51,6 +51,7 @@ void setUp() { logger.addAppender(appender); ecsLayout = new EcsLayout(); ecsLayout.setServiceName("test"); + ecsLayout.setServiceNodeName("test-node"); ecsLayout.setIncludeOrigin(true); ecsLayout.setEventDataset("testdataset.log"); ecsLayout.activateOptions(); diff --git a/log4j-ecs-layout/src/test/resources/log4j.xml b/log4j-ecs-layout/src/test/resources/log4j.xml index b91729e4..567e90a6 100644 --- a/log4j-ecs-layout/src/test/resources/log4j.xml +++ b/log4j-ecs-layout/src/test/resources/log4j.xml @@ -4,6 +4,7 @@ + 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 36362554..647e3f0d 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 @@ -68,14 +68,17 @@ public class EcsLayout extends AbstractStringLayout { private final PatternFormatter[][] fieldValuePatternFormatter; private final boolean stackTraceAsArray; private final String serviceName; + private final String serviceNodeName; private final String eventDataset; private final boolean includeMarkers; private final boolean includeOrigin; private final ConcurrentMap, Boolean> supportsJson = new ConcurrentHashMap, Boolean>(); - private EcsLayout(Configuration config, String serviceName, String eventDataset, boolean includeMarkers, KeyValuePair[] additionalFields, boolean includeOrigin, boolean stackTraceAsArray) { + private EcsLayout(Configuration config, String serviceName, String serviceNodeName, String eventDataset, boolean includeMarkers, + KeyValuePair[] additionalFields, boolean includeOrigin, boolean stackTraceAsArray) { super(config, UTF_8, null, null); this.serviceName = serviceName; + this.serviceNodeName = serviceNodeName; this.eventDataset = eventDataset; this.includeMarkers = includeMarkers; this.includeOrigin = includeOrigin; @@ -125,6 +128,7 @@ private StringBuilder toText(LogEvent event, StringBuilder builder, boolean gcFr serializeMessage(builder, gcFree, event.getMessage(), event.getThrown()); EcsJsonSerializer.serializeEcsVersion(builder); EcsJsonSerializer.serializeServiceName(builder, serviceName); + EcsJsonSerializer.serializeServiceNodeName(builder, serviceNodeName); EcsJsonSerializer.serializeEventDataset(builder, eventDataset); EcsJsonSerializer.serializeThreadName(builder, event.getThreadName()); EcsJsonSerializer.serializeLoggerName(builder, event.getLoggerName()); @@ -324,6 +328,8 @@ public static class Builder implements org.apache.logging.log4j.core.util.Builde private Configuration configuration; @PluginBuilderAttribute("serviceName") private String serviceName; + @PluginBuilderAttribute("serviceNodeName") + private String serviceNodeName; @PluginBuilderAttribute("eventDataset") private String eventDataset; @PluginBuilderAttribute("includeMarkers") @@ -355,6 +361,10 @@ public String getServiceName() { return serviceName; } + public String getServiceNodeName() { + return serviceNodeName; + } + public String getEventDataset() { return eventDataset; } @@ -382,6 +392,11 @@ public EcsLayout.Builder setServiceName(final String serviceName) { return this; } + public EcsLayout.Builder setServiceNodeName(final String serviceNodeName) { + this.serviceNodeName = serviceNodeName; + return this; + } + public EcsLayout.Builder setEventDataset(String eventDataset) { this.eventDataset = eventDataset; return this; @@ -404,7 +419,8 @@ public EcsLayout.Builder setStackTraceAsArray(boolean stackTraceAsArray) { @Override public EcsLayout build() { - return new EcsLayout(getConfiguration(), serviceName, EcsJsonSerializer.computeEventDataset(eventDataset, serviceName), includeMarkers, additionalFields, includeOrigin, stackTraceAsArray); + return new EcsLayout(getConfiguration(), serviceName, serviceNodeName, EcsJsonSerializer.computeEventDataset(eventDataset, serviceName), + includeMarkers, additionalFields, includeOrigin, stackTraceAsArray); } public boolean isStackTraceAsArray() { diff --git a/log4j2-ecs-layout/src/test/java/co/elastic/logging/log4j2/Log4j2EcsLayoutTest.java b/log4j2-ecs-layout/src/test/java/co/elastic/logging/log4j2/Log4j2EcsLayoutTest.java index c48d9d60..66e13b24 100644 --- a/log4j2-ecs-layout/src/test/java/co/elastic/logging/log4j2/Log4j2EcsLayoutTest.java +++ b/log4j2-ecs-layout/src/test/java/co/elastic/logging/log4j2/Log4j2EcsLayoutTest.java @@ -67,6 +67,7 @@ void setUp() { EcsLayout ecsLayout = EcsLayout.newBuilder() .setConfiguration(ctx.getConfiguration()) .setServiceName("test") + .setServiceNodeName("test-node") .setIncludeMarkers(true) .setIncludeOrigin(true) .setEventDataset("testdataset.log") diff --git a/log4j2-ecs-layout/src/test/resources/log4j2-test.xml b/log4j2-ecs-layout/src/test/resources/log4j2-test.xml index 35d2b53a..81df420c 100644 --- a/log4j2-ecs-layout/src/test/resources/log4j2-test.xml +++ b/log4j2-ecs-layout/src/test/resources/log4j2-test.xml @@ -5,7 +5,8 @@ - + 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 530d2820..aa6da1c6 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 @@ -45,6 +45,7 @@ public class EcsEncoder extends EncoderBase { private static final Charset UTF_8 = Charset.forName("UTF-8"); private boolean stackTraceAsArray = false; private String serviceName; + private String serviceNodeName; private String eventDataset; private boolean includeMarkers = false; private ThrowableProxyConverter throwableProxyConverter; @@ -101,6 +102,7 @@ public byte[] encode(ILoggingEvent event) { EcsJsonSerializer.serializeEcsVersion(builder); serializeMarkers(event, builder); EcsJsonSerializer.serializeServiceName(builder, serviceName); + EcsJsonSerializer.serializeServiceNodeName(builder, serviceNodeName); EcsJsonSerializer.serializeEventDataset(builder, eventDataset); EcsJsonSerializer.serializeThreadName(builder, event.getThreadName()); EcsJsonSerializer.serializeLoggerName(builder, event.getLoggerName()); @@ -151,6 +153,10 @@ public void setServiceName(String serviceName) { this.serviceName = serviceName; } + public void setServiceNodeName(String serviceNodeName) { + this.serviceNodeName = serviceNodeName; + } + public void setIncludeMarkers(boolean includeMarkers) { this.includeMarkers = includeMarkers; } diff --git a/logback-ecs-encoder/src/test/java/co/elastic/logging/logback/EcsEncoderTest.java b/logback-ecs-encoder/src/test/java/co/elastic/logging/logback/EcsEncoderTest.java index e8f915ae..a01a7237 100644 --- a/logback-ecs-encoder/src/test/java/co/elastic/logging/logback/EcsEncoderTest.java +++ b/logback-ecs-encoder/src/test/java/co/elastic/logging/logback/EcsEncoderTest.java @@ -44,6 +44,7 @@ void setUp() { logger.addAppender(appender); EcsEncoder ecsEncoder = new EcsEncoder(); ecsEncoder.setServiceName("test"); + ecsEncoder.setServiceNodeName("test-node"); ecsEncoder.setIncludeMarkers(true); ecsEncoder.setIncludeOrigin(true); ecsEncoder.addAdditionalField(new AdditionalField("key1", "value1")); diff --git a/logback-ecs-encoder/src/test/resources/logback-config.xml b/logback-ecs-encoder/src/test/resources/logback-config.xml index bdb6f2ba..d3e6c810 100644 --- a/logback-ecs-encoder/src/test/resources/logback-config.xml +++ b/logback-ecs-encoder/src/test/resources/logback-config.xml @@ -3,6 +3,7 @@ test + test-node true true top_level