The `assert-valid-logging-level` macro had the unfortunate side effect of
preventing the use of runtime-evaluated logging-levels.
To get around this without impacting performance, `assert-valid-logging-level`
has been removed and the validty checking moved to the (memoized) level
comparator.
This is cleaner, more flexible, and no slower.
Changes to config structure:
* [:shared-appender-config :timestamp-pattern] -> :timestamp-pattern
* [:shared-appender-config :locale] -> :timestamp-locale
* Add :prefix-fn
Motivation: timestamp options aren't actually config intended for
appenders. Having them in :shared-appender-config was unnecessarily
confusing.
The addition of :prefix-fn allows full control of prefix strings in a
way that carries over automatically to all appenders. Previously,
adjusting prefix text required modifying appender fns.
Changes to default appenders:
* Drop [:appenders :standard-out]
* [:appenders :standard-out-or-err] -> [:appenders :standard-out]
Motivation: the :standard-out-or-err appender was already the default
anyway, and the presence of the :standard-out appender was just
confusing.
All future appenders that depend on an external library will follow this pattern, allowing the
flexibility to add more diverse appenders without the worry of bloating Timbre core or Timbre's
dependencies.
See updated README example for how to include standard email appender.
* Added check for valid logging level for 'set-level!' and for logging fns.
* Added ':report' level above fatal.
* Fixed arglists for 'log' macro.
* A few other bits of house-keeping.
Signed-off-by: Peter Taoussanis <ptaoussanis@gmail.com>