Logs messages, with convenience methods to log on a specific level.
getLoggerFor on how to instantiate loggers.
Log the given message at the given level. If the internal level is higher than the given level, the message may be voided.
The level to log at.
The message to log.
Optional metadata to include in the log message.