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);
}
+
}