-
Notifications
You must be signed in to change notification settings - Fork 1k
Description
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