Skip to content

Adding a loggerProvider to OpenTelemetryAppender #8222

@rupinder10

Description

@rupinder10

The current implementation of OpenTelemetryAppender uses the default global logger provider from GlobalLoggerProvider.get(). This assumes that the GlobalLoggerProvider.set(loggerProvider) has been called somewhere. This causes an issue for SDK based implementations where its not recommended to use GlobalLoggerProvider.set(loggerProvider) as that can only be set once.

A setLoggerProvider method on the builder and the appender would allow the appender to be used in all scenarios. In case, the logger provider is not set, the global one from GlobalLoggerProvider.get() can be the default.

I plan to add this code to the OpenTelemetryAppender

  private LoggerProvider loggerProvider;

  public void setLoggerProvider(LoggerProvider loggerProvider) {`
    this.loggerProvider = loggerProvider;
  }

  public LoggerProvider getLoggerProvider() {
    return loggerProvider == null ? GlobalLoggerProvider.get() : loggerProvider;
  }

The builder would also get a setLoggerProvider method to keep it consistent.
Discussed the idea with @jack-berg

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions