in log4j2-ecs-layout/src/main/java/co/elastic/logging/log4j2/EcsLayout.java [83:113]
private EcsLayout(Configuration config, 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.serviceName = serviceName;
this.serviceVersion = serviceVersion;
this.serviceEnvironment = serviceEnvironment;
this.serviceNodeName = serviceNodeName;
this.eventDataset = eventDataset;
this.includeMarkers = includeMarkers;
this.includeOrigin = includeOrigin;
this.stackTraceAsArray = stackTraceAsArray;
this.additionalFields = additionalFields;
fieldValuePatternFormatter = new PatternFormatter[additionalFields.length][];
for (int i = 0; i < additionalFields.length; i++) {
KeyValuePair additionalField = additionalFields[i];
if (additionalField.getValue().contains("%")) {
fieldValuePatternFormatter[i] = PatternLayout.createPatternParser(config)
.parse(additionalField.getValue())
.toArray(new PatternFormatter[0]);
}
}
if (exceptionPattern != null && !exceptionPattern.isEmpty()) {
exceptionPatternFormatter = PatternLayout.createPatternParser(config)
.parse(exceptionPattern)
.toArray(new PatternFormatter[0]);
} else {
exceptionPatternFormatter = null;
}
mdcSerializer = MdcSerializerResolver.resolve(mdcSerializerFullClassName);
}