Macro log_enabled

macro_rules! log_enabled {
    (logger: $logger:expr, target: $target:expr, $lvl:expr) => { ... };
    (logger: $logger:expr, $lvl:expr) => { ... };
    (target: $target:expr, $lvl:expr) => { ... };
    ($lvl:expr) => { ... };
}

Determines if a message logged at the specified level in that module will be logged.

This can be used to avoid expensive computation of log message arguments if the message would be ignored anyway.

Examples

use log::{debug, log_enabled, Level};

# struct Data { x: u32, y: u32 }
# fn expensive_call() -> Data { Data { x: 0, y: 0 } }
# let my_logger = log::__private_api::GlobalLogger;
if log_enabled!(Level::Debug) {
    let data = expensive_call();
    debug!("expensive debug data: {} {}", data.x, data.y);
}

if log_enabled!(target: "Global", Level::Debug) {
   let data = expensive_call();
   debug!(target: "Global", "expensive debug data: {} {}", data.x, data.y);
}

if log_enabled!(logger: my_logger, Level::Debug) {
   let data = expensive_call();
   debug!(target: "Global", "expensive debug data: {} {}", data.x, data.y);
}

This macro accepts the same target and logger arguments as [macro@log].