Macro slog::log [] [src]

macro_rules! log {
    ($l:expr, $lvl:expr,  $tag:expr, $($k:expr => $v:expr),+; $($args:tt)+ ) => { ... };
    ($l:expr, $lvl:expr, $tag:expr, $msg:expr,) => { ... };
    ($l:expr, $lvl:expr, $tag:expr, $msg:expr) => { ... };
    ($l:expr, $lvl:expr, $tag:expr, $msg:expr; $($k:expr => $v:expr),+,) => { ... };
    ($l:expr, $lvl:expr, $tag:expr, $msg:expr; $($k:expr => $v:expr),+) => { ... };
    ($l:expr, $lvl:expr, $tag:expr, $($args:tt)+) => { ... };
}

Log message a logging record

Use wrappers error!, warn! etc. instead

The max_level_* and release_max_level* cargo features can be used to statically disable logging at various levels. See slog notable details

Use version with longer name if you want to prevent clash with legacy log crate macro names.

Supported invocations

Simple

#[macro_use]
extern crate slog;

fn main() {
    let drain = slog::Discard;
    let root = slog::Logger::root(drain, o!("key1" => "value1", "key2" => "value2"));
    info!(root, "test info log"; "log-key" => true);
}

Note that "key" => value part is optional:

#[macro_use]
extern crate slog;

fn main() {
    let drain = slog::Discard;
    let root = slog::Logger::root(drain, o!("key1" => "value1", "key2" => "value2"));
    info!(root, "test info log");
}

fmt::Arguments support:

#[macro_use]
extern crate slog;

fn main() {
    let drain = slog::Discard;
    let root = slog::Logger::root(drain, o!("key1" => "value1", "key2" => "value2"));
    info!(root, "log-key" => true; "formatted: {}", 1);
}

Note that due to macro parsing limitation, the message was moved after the key-value pairs.

Again, "key" => value part is optional:

#[macro_use]
extern crate slog;

fn main() {
    let drain = slog::Discard;
    let root = slog::Logger::root(drain, o!("key1" => "value1", "key2" => "value2"));
    info!(root, "formatted: {}", 1);
}