Using slf4j abstraction instead of using a specific logger like log4j2 or logback or java.utils.logging
Context and Scope
There is a logger called JaxRsDpsLogger.java which provides an abstraction in the form of ILogger to override any logging solution provided by cloud provider. There are code instances where a Log library is used instead of JaxRsDpsLogger.java or ILogger which is providing the abstraction
Issue
Currently in search core there is a dependency log4j-to-slf4j
which routes logs written to log4j to slf4j. For azure cloud provider we are using slf4j with log4j as the binder. This is causing a circular dependency while using slf4j in azure provider.
Impact
Even though log4j-to-slf4j
is included in core it was not used anywhere in the core. This can be removed from core and can be added in individual cloud provider module which is using it.
Decision
Use slf4j abstraction in cases where a logging library needs to be directly used.
Rationale
Using slf4j provides flexibility to add any logging solution like log4j2, logback etc., for slf4j abstraction.