Expand description

log crate adapter for slog-rs

This crate provides two way compatibility with Rust standard log crate.

log -> slog

After calling init() slog-stdlog will take a role of log crate back-end, forwarding all the log logging to slog_scope::logger(). In other words, any log crate logging statement will behave like it was slog logging statement executed with logger returned by slog_scope::logger().

See documentation of slog-scope for more information about logging scopes.

See init documentation for an example.

slog -> log

StdLog is slog::Drain that will pass all Records passing through it to log crate just like they were crated with log crate logging macros in the first place.

slog-scope

Since log does not have any form of context, and does not support Logger slog-stdlog relies on “logging scopes” to establish it.

You must set up logging context for log -> slog via slog_scope::scope or slog_scope::set_global_logger. Setting a global logger upfront via slog_scope::set_global_logger is highly recommended.

Note: Since slog-stdlog v2, unlike previous releases, slog-stdlog uses logging scopes provided by slog-scope crate instead of it’s own.

Refer to slog-scope crate documentation for more information.

Warning

Be careful when using both methods at the same time, as a loop can be easily created: log -> slog -> log -> …

Compile-time log level filtering

For filtering debug! and other log statements at compile-time, configure the features on the log crate in your Cargo.toml:

log = { version = "*", features = ["max_level_trace", "release_max_level_warn"] }

Structs

Drain logging Records into log crate

Functions

Register slog-stdlog as log backend.

Register slog-stdlog as log backend. Pass a log::Level to do the log filter explicitly.