Choosing slf4j means that fatal level log messages are treated as error level log messages

Description

All the logging libraries support FATAL as a log level except slf4j. In many projects, you'll have multiple logging systems in play (thank you Java) and even if you bridge all of them to your chosen logger, tools.logging will still choose slf4j if it's in play. That means that if anything in your dependencies brings in slf4j, you can't distinguish between FATAL and ERROR level logging.

At work, we've standardized on log4j2 and we bridge everything to that. tools.logging still selects slf4j. Whilst we can override it, having to add alter-var-root and reach into clojure.tools.logging.impl to get at the log4j2-factory is ugly and "smells bad".

It would be nice to have some way of configuring tools.logging to select a specific logging system without having to add that code above to every single main entry point in every application. Perhaps an optional configuration file on the classpath that tools.logging could look for and use to override the choice of logging system?

Environment

None

Assignee

Unassigned

Reporter

Sean Corfield

Labels

None

Approval

None

Patch

None

Priority

Major
Configure