sile / sloggers

A Rust library which provides frequently used slog loggers and convenient functions
MIT License
37 stars 18 forks source link

Log level `Severity::Debug` doesn't work on release build #39

Closed whfuyn closed 3 years ago

whfuyn commented 3 years ago
use slog::info;
use slog::debug;
use slog::warn;
use sloggers::terminal::TerminalLoggerBuilder;
use sloggers::types::Severity;
use sloggers::Build as _;

fn main() {
    let mut builder = TerminalLoggerBuilder::new();
    builder.level(Severity::Debug);
    let logger = builder.build().unwrap();
    debug!(logger, "debug");
    info!(logger, "info");
    warn!(logger, "warn");
}

Debug build:

    Finished dev [unoptimized + debuginfo] target(s) in 0.08s
     Running `target\debug\test-slog.exe`
May 11 10:08:13.991 DEBG debug, module: test_slog:12
May 11 10:08:13.992 INFO info, module: test_slog:13
May 11 10:08:13.993 WARN warn, module: test_slog:14

Release build:

    Finished release [optimized] target(s) in 0.11s
     Running `target\release\test-slog.exe`
May 11 10:08:18.080 INFO info, module: test_slog:13
May 11 10:08:18.081 WARN warn, module: test_slog:14

I expect builder.level(Severity::Debug) will override this behavior. If not, how can I force it to log debug info on release build?

sile commented 3 years ago

This is because slog disables debug messages by default in the release build. You need to specify the release_max_level_debug feature to slog in your Cargo.toml to enable that. Please refer to https://docs.rs/slog/2.7.0/slog/#notable-details for more details.

whfuyn commented 3 years ago

Thanks!