log

Macro log

Source
macro_rules! log {
    (logger: $logger:expr, target: $target:expr, $lvl:expr, $($arg:tt)+) => { ... };
    (logger: $logger:expr, $lvl:expr, $($arg:tt)+) => { ... };
    (target: $target:expr, $lvl:expr, $($arg:tt)+) => { ... };
    ($lvl:expr, $($arg:tt)+) => { ... };
}
Expand description

The standard logging macro.

This macro will generically log with the specified Level and format! based argument list.

use log::{log, Level};

let data = (42, "Forty-two");
let private_data = "private";

log!(Level::Error, "Received errors: {}, {}", data.0, data.1);

Optionally, you can specify a target argument to attach a specific target to the log record. By default, the target is the module path of the caller.

use log::{log, Level};

let data = (42, "Forty-two");
let private_data = "private";

log!(
    target: "app_events",
    Level::Error,
    "Received errors: {}, {}",
    data.0, data.1
);

And optionally, you can specify a logger argument to use a specific logger instead of the default global logger.

use log::{log, Level, Log};

let data = (42, "Forty-two");
let private_data = "private";

let my_logger = MyLogger {};
log!(
    logger: my_logger,
    Level::Error,
    "Received errors: {}, {}",
    data.0, data.1
);

The logger argument accepts a value that implements the Log trait. The value will be borrowed within the macro.

Note that the global level set via Cargo features, or through set_max_level will still apply, even when a custom logger is supplied with the logger argument.