#logger #slog #logging #frequently #convenience #severity

sloggers

This library provides frequently used slog loggers and convenient functions

33 releases (9 stable)

2.2.0 Jan 27, 2024
2.1.2 Aug 18, 2023
2.1.1 Nov 15, 2021
2.0.1 Jul 3, 2021
0.2.0 Jun 15, 2017

#50 in Debugging

Download history 4156/week @ 2023-11-20 3183/week @ 2023-11-27 4560/week @ 2023-12-04 3373/week @ 2023-12-11 3261/week @ 2023-12-18 1174/week @ 2023-12-25 3059/week @ 2024-01-01 4723/week @ 2024-01-08 3876/week @ 2024-01-15 4821/week @ 2024-01-22 5922/week @ 2024-01-29 5889/week @ 2024-02-05 4445/week @ 2024-02-12 5696/week @ 2024-02-19 5601/week @ 2024-02-26 6207/week @ 2024-03-04

22,233 downloads per month
Used in 31 crates (26 directly)

MIT license

135KB
2.5K SLoC

sloggers - convenience library for slog

Crates.io: sloggers Documentation Actions Status Coverage Status License: MIT Gitter: slog

sloggers provides frequently used slog loggers and convenient functions.

Documentation

Join gitter for help


lib.rs:

This crate provides frequently used slog loggers and convenient functions.

Important note: this crate is optimized for performance rather than for not losing any messages! This may be surprising in some common scenarios, like logging an error message and calling std::process::exit(1). It's recommended to drop the logger(s) before exiting. panic = "abort" may have the same surprising effect, so unwinding is preferrable if you want to avoid losing the messages. See #29 for more information.

Examples

Creates a logger via TerminalLoggerBuilder:

use slog::info;
use sloggers::Build;
use sloggers::terminal::{TerminalLoggerBuilder, Destination};
use sloggers::types::Severity;

let mut builder = TerminalLoggerBuilder::new();
builder.level(Severity::Debug);
builder.destination(Destination::Stderr);

let logger = builder.build().unwrap();
info!(logger, "Hello World!");

Creates a logger from configuration text (TOML):

use slog::info;
use sloggers::{Config, LoggerConfig};

let config: LoggerConfig = serdeconv::from_toml_str(r#"
type = "terminal"
level = "debug"
destination = "stderr"
"#).unwrap();

let logger = config.build_logger().unwrap();
info!(logger, "Hello World!");

Dependencies

~8–19MB
~218K SLoC