diff --git a/pom.xml b/pom.xml index 8e79d7e..1b16dd4 100644 --- a/pom.xml +++ b/pom.xml @@ -5,12 +5,12 @@ com.wikia dropwizard-logstash-encoder - 1.0.2 + 1.0.3 dropwizard-logstash-encoder Addon for dropwizard to log using the logback-logstash-encoder (see https://github.com/logstash/logstash-logback-encoder) - https://github.com/Wikia/dropwizard-logback-logsash-encoder + https://github.com/Wikia/dropwizard-logback-logstash-encoder @@ -128,12 +128,12 @@ io.dropwizard dropwizard-logging - 0.7.0 + 0.7.1 net.logstash.logback logstash-logback-encoder - 3.5 + 4.2 diff --git a/src/main/java/com/wikia/dropwizard/logstash/appender/AbstractLogstashAppenderFactory.java b/src/main/java/com/wikia/dropwizard/logstash/appender/AbstractLogstashAppenderFactory.java index 4cd0ef7..c164604 100644 --- a/src/main/java/com/wikia/dropwizard/logstash/appender/AbstractLogstashAppenderFactory.java +++ b/src/main/java/com/wikia/dropwizard/logstash/appender/AbstractLogstashAppenderFactory.java @@ -1,11 +1,13 @@ package com.wikia.dropwizard.logstash.appender; import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.collect.Maps; import io.dropwizard.logging.AbstractAppenderFactory; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; +import java.io.IOException; import java.util.HashMap; abstract class AbstractLogstashAppenderFactory extends AbstractAppenderFactory { @@ -22,7 +24,7 @@ abstract class AbstractLogstashAppenderFactory extends AbstractAppenderFactory { protected boolean includeMdc = true; - protected HashMap customFields; + protected HashMap customFields = Maps.newHashMap(); protected HashMap fieldNames; @@ -95,4 +97,16 @@ public HashMap getFieldNames() { public void setFieldNames(HashMap fieldNames) { this.fieldNames = fieldNames; } + + protected String renderCustomFields(String applicationName) { + // always set the application name except when overridden + customFields.putIfAbsent("applicationName", applicationName); + + try { + return LogstashAppenderFactoryHelper.getCustomFieldsFromHashMap(customFields); + } catch (IOException e) { + System.out.println("unable to parse customFields: " + e.getMessage()); + return "{}"; + } + } } diff --git a/src/main/java/com/wikia/dropwizard/logstash/appender/LogstashSocketAppenderFactory.java b/src/main/java/com/wikia/dropwizard/logstash/appender/LogstashSocketAppenderFactory.java index d60d886..1c9b92e 100644 --- a/src/main/java/com/wikia/dropwizard/logstash/appender/LogstashSocketAppenderFactory.java +++ b/src/main/java/com/wikia/dropwizard/logstash/appender/LogstashSocketAppenderFactory.java @@ -8,8 +8,6 @@ import com.fasterxml.jackson.annotation.JsonTypeName; import net.logstash.logback.appender.LogstashSocketAppender; -import java.io.IOException; - @JsonTypeName("logstash-socket") public class LogstashSocketAppenderFactory extends AbstractLogstashAppenderFactory { public LogstashSocketAppenderFactory() { @@ -29,14 +27,7 @@ public Appender build(LoggerContext context, String applicationNa appender.setIncludeMdc(includeMdc); appender.setIncludeContext(includeContext); - if (customFields != null) { - try { - String custom = LogstashAppenderFactoryHelper.getCustomFieldsFromHashMap(customFields); - appender.setCustomFields(custom); - } catch (IOException e) { - System.out.println("unable to parse customFields: "+e.getMessage()); - } - } + appender.setCustomFields(renderCustomFields(applicationName)); if (fieldNames != null) { appender.setFieldNames(LogstashAppenderFactoryHelper.getFieldNamesFromHashMap(fieldNames)); diff --git a/src/main/java/com/wikia/dropwizard/logstash/appender/LogstashTcpAppenderFactory.java b/src/main/java/com/wikia/dropwizard/logstash/appender/LogstashTcpAppenderFactory.java index e34ec28..142c68a 100644 --- a/src/main/java/com/wikia/dropwizard/logstash/appender/LogstashTcpAppenderFactory.java +++ b/src/main/java/com/wikia/dropwizard/logstash/appender/LogstashTcpAppenderFactory.java @@ -11,7 +11,6 @@ import javax.validation.constraints.Max; import javax.validation.constraints.Min; -import java.io.IOException; @JsonTypeName("logstash-tcp") public class LogstashTcpAppenderFactory extends AbstractLogstashAppenderFactory { @@ -59,14 +58,8 @@ public Appender build(LoggerContext context, String applicationNa encoder.setIncludeContext(includeContext); encoder.setIncludeMdc(includeMdc); encoder.setIncludeCallerInfo(includeCallerInfo); - if (customFields != null) { - try { - String custom = LogstashAppenderFactoryHelper.getCustomFieldsFromHashMap(customFields); - encoder.setCustomFields(custom); - } catch (IOException e) { - System.out.println("unable to parse customFields: "+e.getMessage()); - } - } + + encoder.setCustomFields(renderCustomFields(applicationName)); if (fieldNames != null) { encoder.setFieldNames(LogstashAppenderFactoryHelper.getFieldNamesFromHashMap(fieldNames)); @@ -79,4 +72,5 @@ public Appender build(LoggerContext context, String applicationNa return wrapAsync(appender); } + }