OK, got it...
There are several things at play...
1.
Everything OKAPI (and a lot of 3rd party libraries used by Okapi) are doing the logging using slf4j
And we bind it to the jdk logger for the binaries we make available for the end-users,
we bind to logback for build time (and in general for development),
and we don't bind it to anything for the artifacts we publish to maven central (so that devs using Okapi are free to use whatever they want)
2.
Our applications (tikal, rainbow, etc) need a way to "intercept" the logging that goes to the bunded logger.
This is where the "Error: Unknown underlying logger, cannot capture it's output" message comes from (and just notices the grammar mistake :-)
We basically have to reach "below" slf4j (which does not have any way to "hook" in the logging), take all of those messages,
and show them nicely in the GUI (in the rainbow case) or enable / disable them (in the tikal case).
How you do that depends on the logging system used for binding.
Initially I've added "hooks" for log4j, logback, jdk, and jcl.
But that also included dependencies on all those loggers, which was not a good thing. So it was removed.
There is no good and quick option that I can think of.
I can think of a few decent ways, none of them quick to solve:
- move everything to logback, binaries & dev. that way we can just write the "hook" for logback
- rewrite the initial "hooks" the were aware of the various bindings, but in a way that does not introduce the maven dependencies
(not sure what that way would be)
- write our own logging that binds to slf4j. Not necessarily simple (depending how fancy we want to get)
Creating our own logging API and migrate all of Okapi to use it does not help, as many of the libraries used by Okapi use slf4j, not our logger.
Mihai