in jul-ecs-formatter/src/main/java/co/elastic/logging/jul/EcsFormatter.java [66:94]
public String format(final LogRecord record) {
final StringBuilder builder = new StringBuilder();
EcsJsonSerializer.serializeObjectStart(builder, record.getMillis());
EcsJsonSerializer.serializeLogLevel(builder, record.getLevel().getName());
EcsJsonSerializer.serializeFormattedMessage(builder, super.formatMessage(record));
EcsJsonSerializer.serializeEcsVersion(builder);
EcsJsonSerializer.serializeAdditionalFields(builder, additionalFields);
EcsJsonSerializer.serializeMDC(builder, getMdcEntries());
EcsJsonSerializer.serializeServiceName(builder, serviceName);
EcsJsonSerializer.serializeServiceVersion(builder, serviceVersion);
EcsJsonSerializer.serializeServiceEnvironment(builder, serviceEnvironment);
EcsJsonSerializer.serializeServiceNodeName(builder, serviceNodeName);
EcsJsonSerializer.serializeEventDataset(builder, eventDataset);
if (Thread.currentThread().getId() == record.getThreadID()) {
EcsJsonSerializer.serializeThreadName(builder, Thread.currentThread().getName());
} else {
EcsJsonSerializer.serializeThreadId(builder, record.getThreadID());
}
EcsJsonSerializer.serializeLoggerName(builder, record.getLoggerName());
if (includeOrigin && record.getSourceClassName() != null && record.getSourceMethodName() != null) {
EcsJsonSerializer.serializeOrigin(builder, buildFileName(record.getSourceClassName()), record.getSourceMethodName(), -1);
}
final Throwable throwableInformation = record.getThrown();
if (throwableInformation != null) {
EcsJsonSerializer.serializeException(builder, throwableInformation, stackTraceAsArray);
}
EcsJsonSerializer.serializeObjectEnd(builder);
return builder.toString();
}