Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,16 @@ public static void serializeObjectStart(StringBuilder builder, long timeMillis)
}

public static void serializeEcsVersion(StringBuilder builder) {
builder.append("\"ecs.version\": \"1.2.0\",");
serializeEcsVersion(builder, null);
}

public static void serializeEcsVersion(StringBuilder builder, String version) {
if (version == null) {
version = "1.2.0";
}
builder.append("\"ecs.version\":\"");
JsonUtils.quoteAsString(version, builder);
builder.append("\",");
}

public static void serializeObjectEnd(StringBuilder builder) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@

public class EcsFormatter extends ExtFormatter {

private String ecsVersion;
private String serviceName;
private String serviceVersion;
private String serviceEnvironment;
Expand All @@ -45,6 +46,7 @@ public class EcsFormatter extends ExtFormatter {
private boolean stackTraceAsArray;

public EcsFormatter() {
ecsVersion = getProperty("co.elastic.logging.jboss.logmanager.EcsFormatter.ecsVersion", null);
serviceName = getProperty("co.elastic.logging.jboss.logmanager.EcsFormatter.serviceName", null);
serviceVersion = getProperty("co.elastic.logging.jboss.logmanager.EcsFormatter.serviceVersion", null);
serviceEnvironment = getProperty("co.elastic.logging.jboss.logmanager.EcsFormatter.serviceEnvironment", null);
Expand All @@ -61,7 +63,7 @@ public String format(ExtLogRecord record) {
EcsJsonSerializer.serializeObjectStart(builder, record.getMillis());
EcsJsonSerializer.serializeLogLevel(builder, record.getLevel().getName());
EcsJsonSerializer.serializeFormattedMessage(builder, record.getFormattedMessage());
EcsJsonSerializer.serializeEcsVersion(builder);
EcsJsonSerializer.serializeEcsVersion(builder, ecsVersion);
EcsJsonSerializer.serializeServiceName(builder, serviceName);
EcsJsonSerializer.serializeServiceVersion(builder, serviceVersion);
EcsJsonSerializer.serializeServiceEnvironment(builder, serviceEnvironment);
Expand Down Expand Up @@ -94,6 +96,10 @@ public void setIncludeOrigin(final boolean includeOrigin) {
this.includeOrigin = includeOrigin;
}

public void setEcsVersion(String ecsVersion) {
this.ecsVersion = ecsVersion;
}

public void setServiceName(final String serviceName) {
this.serviceName = serviceName;
eventDataset = EcsJsonSerializer.computeEventDataset(eventDataset, serviceName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public class EcsFormatter extends Formatter {
private static final String UNKNOWN_FILE = "<Unknown>";

private boolean stackTraceAsArray;
private String ecsVersion;
private String serviceName;
private String serviceVersion;
private String serviceEnvironment;
Expand All @@ -51,6 +52,7 @@ public class EcsFormatter extends Formatter {
* Default constructor. Will read configuration from LogManager properties.
*/
public EcsFormatter() {
ecsVersion = getProperty("co.elastic.logging.jul.EcsFormatter.ecsVersion", null);
serviceName = getProperty("co.elastic.logging.jul.EcsFormatter.serviceName", null);
serviceVersion = getProperty("co.elastic.logging.jul.EcsFormatter.serviceVersion", null);
serviceEnvironment = getProperty("co.elastic.logging.jul.EcsFormatter.serviceEnvironment", null);
Expand All @@ -68,7 +70,7 @@ public String format(final LogRecord record) {
EcsJsonSerializer.serializeObjectStart(builder, record.getMillis());
EcsJsonSerializer.serializeLogLevel(builder, record.getLevel().getName());
EcsJsonSerializer.serializeFormattedMessage(builder, super.formatMessage(record));
EcsJsonSerializer.serializeEcsVersion(builder);
EcsJsonSerializer.serializeEcsVersion(builder, ecsVersion);
EcsJsonSerializer.serializeAdditionalFields(builder, additionalFields);
EcsJsonSerializer.serializeMDC(builder, getMdcEntries());
EcsJsonSerializer.serializeServiceName(builder, serviceName);
Expand Down Expand Up @@ -107,6 +109,10 @@ public void setIncludeOrigin(final boolean includeOrigin) {
this.includeOrigin = includeOrigin;
}

public void setEcsVersion(String ecsVersion) {
this.ecsVersion = ecsVersion;
}

public void setServiceName(final String serviceName) {
this.serviceName = serviceName;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public class EcsLayout extends Layout {
private static final MdcAccess MDC_ACCESS = MdcAccess.Resolver.resolve();

private boolean stackTraceAsArray = false;
private String ecsVersion;
private String serviceName;
private String serviceVersion;
private String serviceEnvironment;
Expand All @@ -53,7 +54,7 @@ public String format(LoggingEvent event) {
EcsJsonSerializer.serializeObjectStart(builder, event.timeStamp);
EcsJsonSerializer.serializeLogLevel(builder, event.level.toString());
EcsJsonSerializer.serializeFormattedMessage(builder, event.getRenderedMessage());
EcsJsonSerializer.serializeEcsVersion(builder);
EcsJsonSerializer.serializeEcsVersion(builder, ecsVersion);
EcsJsonSerializer.serializeServiceName(builder, serviceName);
EcsJsonSerializer.serializeServiceVersion(builder, serviceVersion);
EcsJsonSerializer.serializeServiceEnvironment(builder, serviceEnvironment);
Expand Down Expand Up @@ -101,6 +102,10 @@ public void activateOptions() {
eventDataset = EcsJsonSerializer.computeEventDataset(eventDataset, serviceName);
}

public void setEcsVersion(String ecsVersion) {
this.ecsVersion = ecsVersion;
}

public void setServiceName(String serviceName) {
this.serviceName = serviceName;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ public class EcsLayout extends AbstractStringLayout {
private final KeyValuePair[] additionalFields;
private final PatternFormatter[][] fieldValuePatternFormatter;
private final boolean stackTraceAsArray;
private final String ecsVersion;
private final String serviceName;
private final String serviceVersion;
private final String serviceEnvironment;
Expand All @@ -80,9 +81,10 @@ public class EcsLayout extends AbstractStringLayout {
private final ConcurrentMap<Class<? extends MultiformatMessage>, Boolean> supportsJson = new ConcurrentHashMap<Class<? extends MultiformatMessage>, Boolean>();
private final MdcSerializer mdcSerializer;

private EcsLayout(Configuration config, String serviceName, String serviceVersion, String serviceEnvironment, String serviceNodeName, String eventDataset, boolean includeMarkers,
private EcsLayout(Configuration config, String ecsVersion, String serviceName, String serviceVersion, String serviceEnvironment, String serviceNodeName, String eventDataset, boolean includeMarkers,
KeyValuePair[] additionalFields, boolean includeOrigin, String exceptionPattern, boolean stackTraceAsArray, String mdcSerializerFullClassName) {
super(config, UTF_8, null, null);
this.ecsVersion = ecsVersion;
this.serviceName = serviceName;
this.serviceVersion = serviceVersion;
this.serviceEnvironment = serviceEnvironment;
Expand Down Expand Up @@ -143,7 +145,7 @@ private StringBuilder toText(LogEvent event, StringBuilder builder, boolean gcFr
EcsJsonSerializer.serializeObjectStart(builder, event.getTimeMillis());
EcsJsonSerializer.serializeLogLevel(builder, event.getLevel().toString());
serializeMessage(builder, gcFree, event.getMessage(), event.getThrown());
EcsJsonSerializer.serializeEcsVersion(builder);
EcsJsonSerializer.serializeEcsVersion(builder, ecsVersion);
EcsJsonSerializer.serializeServiceName(builder, serviceName);
EcsJsonSerializer.serializeServiceVersion(builder, serviceVersion);
EcsJsonSerializer.serializeServiceEnvironment(builder, serviceEnvironment);
Expand Down Expand Up @@ -358,6 +360,8 @@ public static class Builder implements org.apache.logging.log4j.core.util.Builde

@PluginConfiguration
private Configuration configuration;
@PluginBuilderAttribute("ecsVersion")
private String ecsVersion;
@PluginBuilderAttribute("serviceName")
private String serviceName;
@PluginBuilderAttribute("serviceVersion")
Expand Down Expand Up @@ -397,6 +401,10 @@ public KeyValuePair[] getAdditionalFields() {
return additionalFields.clone();
}

public String getEcsVersion() {
return ecsVersion;
}

public String getServiceName() {
return serviceName;
}
Expand Down Expand Up @@ -445,6 +453,11 @@ public EcsLayout.Builder setAdditionalFields(final KeyValuePair[] additionalFiel
return this;
}

public EcsLayout.Builder setEcsVersion(final String ecsVersion) {
this.ecsVersion = ecsVersion;
return this;
}

public EcsLayout.Builder setServiceName(final String serviceName) {
this.serviceName = serviceName;
return this;
Expand Down Expand Up @@ -497,7 +510,7 @@ public EcsLayout.Builder setMdcSerializerFullClassName(String mdcSerializerFullC

@Override
public EcsLayout build() {
return new EcsLayout(getConfiguration(), serviceName, serviceVersion, serviceEnvironment, serviceNodeName,
return new EcsLayout(getConfiguration(), ecsVersion, serviceName, serviceVersion, serviceEnvironment, serviceNodeName,
EcsJsonSerializer.computeEventDataset(eventDataset, serviceName),
includeMarkers, additionalFields, includeOrigin, exceptionPattern, stackTraceAsArray, mdcSerializerFullClassName);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ public class EcsEncoder extends EncoderBase<ILoggingEvent> {

private static final Charset UTF_8 = Charset.forName("UTF-8");
private boolean stackTraceAsArray = false;
private String ecsVersion;
private String serviceName;
private String serviceVersion;
private String serviceEnvironment;
Expand Down Expand Up @@ -108,7 +109,7 @@ public byte[] encode(ILoggingEvent event) {
EcsJsonSerializer.serializeObjectStart(builder, event.getTimeStamp());
EcsJsonSerializer.serializeLogLevel(builder, event.getLevel().toString());
serializeMessage(event, builder);
EcsJsonSerializer.serializeEcsVersion(builder);
EcsJsonSerializer.serializeEcsVersion(builder, ecsVersion);
serializeMarkers(event, builder);
EcsJsonSerializer.serializeServiceName(builder, serviceName);
EcsJsonSerializer.serializeServiceVersion(builder, serviceVersion);
Expand Down Expand Up @@ -182,6 +183,10 @@ public byte[] footerBytes() {
return null;
}

public void setEcsVersion(String ecsVersion) {
this.ecsVersion = ecsVersion;
}

public void setServiceName(String serviceName) {
this.serviceName = serviceName;
}
Expand Down
Loading