elastic / elastic/ecs-logging-java

Adding ECS formatting to Quarkus

Aperta
#146 1 commento 13 reazioni 0 assegnatari Vedi su GitHub
agent-java community
Lingua principale
Java
Stelle
148
Fork
82
Merge medio
2g 17h
PR unite (30g)
3

Descrizione

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.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.