From 2d4440354cf1bf7873bf611936f78a06c9a80519 Mon Sep 17 00:00:00 2001 From: liaozan <378024053@qq.com> Date: Thu, 31 Aug 2023 00:37:26 +0800 Subject: [PATCH] Enable write logstash logger with nodeIp field --- .../logstash/EnhancedLogstashFormatter.java | 3 +- .../EventDateStringValueJsonProvider.java | 2 +- .../logger/logstash/NodeIpJsonProvider.java | 32 +++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/logstash/NodeIpJsonProvider.java diff --git a/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/logstash/EnhancedLogstashFormatter.java b/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/logstash/EnhancedLogstashFormatter.java index 09404b7..15ca560 100644 --- a/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/logstash/EnhancedLogstashFormatter.java +++ b/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/logstash/EnhancedLogstashFormatter.java @@ -28,6 +28,7 @@ public class EnhancedLogstashFormatter extends LogstashFormatter { } private void addAdditionalProviders() { + getProviders().addProvider(new NodeIpJsonProvider()); getProviders().addProvider(new EventDateStringValueJsonProvider()); } @@ -63,4 +64,4 @@ public class EnhancedLogstashFormatter extends LogstashFormatter { return excludeProviders; } -} \ No newline at end of file +} diff --git a/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/logstash/EventDateStringValueJsonProvider.java b/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/logstash/EventDateStringValueJsonProvider.java index 240c7b5..7706a7b 100644 --- a/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/logstash/EventDateStringValueJsonProvider.java +++ b/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/logstash/EventDateStringValueJsonProvider.java @@ -27,7 +27,7 @@ public class EventDateStringValueJsonProvider extends AbstractFieldJsonProvider< @Override public void writeTo(JsonGenerator generator, ILoggingEvent event) throws IOException { - JsonWritingUtils.writeStringField(generator, FIELD_EVENT_DATE, getEventDate(event)); + JsonWritingUtils.writeStringField(generator, getFieldName(), getEventDate(event)); } private String getEventDate(ILoggingEvent event) { diff --git a/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/logstash/NodeIpJsonProvider.java b/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/logstash/NodeIpJsonProvider.java new file mode 100644 index 0000000..9f441c3 --- /dev/null +++ b/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/logstash/NodeIpJsonProvider.java @@ -0,0 +1,32 @@ +package com.schbrain.framework.autoconfigure.logger.logstash; + +import ch.qos.logback.classic.spi.ILoggingEvent; +import com.fasterxml.jackson.core.JsonGenerator; +import net.logstash.logback.composite.AbstractFieldJsonProvider; +import net.logstash.logback.composite.JsonWritingUtils; + +import java.io.IOException; + +/** + * @author liaozan + * @since 2023/8/31 + */ +public class NodeIpJsonProvider extends AbstractFieldJsonProvider { + + private static final String FIELD_NODE_IP = "nodeIp"; + + /** + * Retrieves the node ip from the k8s environment variable NODE_IP. + */ + private static final String NODE_IP = System.getenv("NODE_IP"); + + public NodeIpJsonProvider() { + setFieldName(FIELD_NODE_IP); + } + + @Override + public void writeTo(JsonGenerator generator, ILoggingEvent iLoggingEvent) throws IOException { + JsonWritingUtils.writeStringField(generator, getFieldName(), NODE_IP); + } + +} -- GitLab