On Mon, Aug 6, 2018 at 9:57 AM Oleg Nenashev <
o.v.ne...@gmail.com> wrote:
> Jesse's concern was that such abstraction layer should be probably moved to External API Plugin instead of having that in the core directly.
FTR my advice was that this division should not be mandated by the SPI
at all (including in the API plugin)—that at the basic level, an
implementation of external logging should be in control of both
sending and displaying log messages however it sees fit (since the
details might be tightly coupled); and that insofar as there may be
particular cases where it makes sense to offer the administrator
independent choices for logging and display (for example, because
there is a nontrivial Fluentd logging implementation which could be
coupled with various storage backends), that we can always introduce a
more specific SPI for that technology stack.
Oleg’s preference was to retain a separation, if necessary introducing
a filtering system which would allow plugins to express whether a
particular combination of extensions made any sense. My request was to
at least keep this design in a plugin to make it easier to revisit the
decision later if we need to.
> Some methods could have had default implementations in the core, but I decided to move them to External Logging API so we can update them if needed
Makes sense to me.