macro_rules! log {
(target: $target:expr, $lvl:expr, $($key:ident = $value:expr),* ; $fmt:expr, $($arg:tt)+) => { ... };
(target: $target:expr, $lvl:expr, $($arg:tt)+) => { ... };
($lvl:expr, $($arg:tt)+) => { ... };
($($arg:tt)+) => { ... };
() => { ... };
}