elastic / elastic/ecs-logging-java

Adding ECS formatting to Quarkus

Open
#146 1 comment 13 reactions 0 assignees View on GitHub
agent-java community
Dominant language
Java
Stars
148
Forks
82
Avg merge
2d 17h
Merged PRs (30d)
3

Description

Hi there,

I wanted to start a discussion about adding ECS formatting to the [Quarkus](https://quarkus.io/) framework. This issue describes what I was trying to achieve: https://github.com/quarkiverse/quarkus-logging-json/issues/132.

Now I have a working solution and was wondering how I can contribute to his library.

The solution consist of the following code which is based on your classes:
- Serializer: https://gist.github.com/nadworny/5fc96555c5f5d24c919fcacc482e820c
- Formatter: https://gist.github.com/nadworny/a80d405b4b4fc50f6e078ca14f451ab4

My EcsFormatter doesn't extend the Formatter class as it requires a slightly different approach namely it writes directly into the generator.

The final JsonProvider, which uses the [quarkus-logging-json](https://github.com/quarkiverse/quarkus-logging-json) framework, looks like this:
```java
@ApplicationScoped
public class EcsJsonProvider implements JsonProvider {

private final EcsQuarkusFormatter ecsFormatter;

@Inject
public EcsJsonProvider(EcsConfiguration ecsConfiguration) {
ecsFormatter = new EcsQuarkusFormatter(ecsConfiguration.service().name(), ecsConfiguration.service()
.nodeName().orElse(null), Boolean.TRUE.equals(ecsConfiguration.logOrigin().orElse(null)),
Boolean.TRUE.equals(ecsConfiguration.errorStackTraceAsArray().orElse(null)));
}

@Override
public void writeTo(JsonGenerator generator, ExtLogRecord event) throws IOException {
ecsFormatter.format(generator, event);
}
}
```

Any suggestions/contributions how we could re-use my code and make it into this library would be greatly appreciated.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.