rust-lang-nursery / rust-cookbook

https://rust-lang-nursery.github.io/rust-cookbook
Creative Commons Zero v1.0 Universal
2.26k stars 284 forks source link

update Log Messages/Configure Logging sections #696

Open Arteiii opened 5 months ago

Arteiii commented 5 months ago

there are instances of code that may have previously worked but are now outdated due to changes in the env_logger crate

https://rust-lang-nursery.github.io/rust-cookbook/development_tools/debugging/config_log.html#use-a-custom-environment-variable-to-set-up-logging

use std::env;
use env_logger::Builder;

fn main() {
    Builder::new()
        .parse(&env::var("MY_APP_LOG").unwrap_or_default()) // Deprecated method
        .init();

    log::info!("informational message");
    log::warn!("warning message");
    log::error!("this is an error {}", "message");
}

Fix

https://docs.rs/env_logger/latest/env_logger/struct.Builder.html#method.from_env

use env_logger::Builder;

let mut builder = Builder::from_env("MY_APP_LOG");
builder.init();

or

https://docs.rs/env_logger/latest/env_logger/struct.Builder.html#method.parse_env

use log::LevelFilter;
use env_logger::Builder;

let mut builder = Builder::new();

builder.filter_level(LevelFilter::Off);
builder.parse_env("MY_APP_LOG");
builder.init();
Arteiii commented 5 months ago

I am not sure for what reason the latest version is shown in the badges, but wouldn't it be better to show the version for which the sample code is intended?