Skip to content

Adding ECS formatting to Quarkus #146

@nadworny

Description

@nadworny

Hi there,

I wanted to start a discussion about adding ECS formatting to the Quarkus framework. This issue describes what I was trying to achieve: quarkiverse/quarkus-logging-json#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:

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 framework, looks like this:

@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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-javacommunityIssues and PRs created by the community

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions