Simple logger implementation that works using targets.
Instead of needing multiple logging crates to log to multiple targets
this crate provides a layer of abstraction and a few default targets.
A target has to implement the Target trait.
This crate also has a no_std (disable default features) version and
UART logging target using embedded-serial is provided
under the uart_target feature.
To start logging, create the Logger object either statically or dynamically
and then call one of its init_ methods.
For example, for a dynamic logger (requires std feature):
use StderrTarget;
let logger = new;
logger.init_boxed.expect;
Logger can also be created and set statically, though this has a few caveats (read the documentation of Logger::new for more):
use StderrTarget;
use DummyTiming;
static LOGGER: Logger = Logger ;
LOGGER.init_static;