From aae196b7fecdf911f875df35e552f7d71dc65f5e Mon Sep 17 00:00:00 2001 From: jakubmanczak Date: Thu, 9 Oct 2025 09:45:43 +0200 Subject: [PATCH] silence serenity info logs --- Cargo.lock | 13 +++++++++++++ Cargo.toml | 2 +- src/setup.rs | 32 +++++++++----------------------- 3 files changed, 23 insertions(+), 24 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0082311..7a3cd02 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1079,6 +1079,15 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +[[package]] +name = "matchers" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +dependencies = [ + "regex-automata", +] + [[package]] name = "matchit" version = "0.8.4" @@ -2129,10 +2138,14 @@ version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ + "matchers", "nu-ansi-term", + "once_cell", + "regex-automata", "sharded-slab", "smallvec", "thread_local", + "tracing", "tracing-core", "tracing-log", ] diff --git a/Cargo.toml b/Cargo.toml index 5e11815..3674c08 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,4 +14,4 @@ serenity = "0.12.4" tokio = { version = "1.44.2", features = ["full"] } tower = "0.5.2" tracing = "0.1.41" -tracing-subscriber = "0.3.20" +tracing-subscriber = { version = "0.3.20", features = ["env-filter"] } diff --git a/src/setup.rs b/src/setup.rs index 301af25..f606e69 100644 --- a/src/setup.rs +++ b/src/setup.rs @@ -1,6 +1,6 @@ use dotenvy::Error; -use tracing::{Level, error, info, subscriber, warn}; -use tracing_subscriber::FmtSubscriber; +use tracing::{error, info, subscriber, warn}; +use tracing_subscriber::{EnvFilter, FmtSubscriber}; pub fn dotenv_and_tracing() { let dotenv = match dotenvy::dotenv() { @@ -10,16 +10,18 @@ pub fn dotenv_and_tracing() { false => DotenvStatus::Error(e), }, }; - let lvl = match std::env::var("RUST_LOG") { - Ok(s) => Level::try_from_str(&s), + let filter = match std::env::var("RUST_LOG") { + Ok(s) => EnvFilter::new(s), Err(e) => match e { - std::env::VarError::NotPresent => Level::INFO, + std::env::VarError::NotPresent => EnvFilter::new("info,serenity=warn"), std::env::VarError::NotUnicode(s) => panic!("{:?} is not a valid log level.", s), }, }; - let s = FmtSubscriber::builder().with_max_level(lvl).finish(); + let s = FmtSubscriber::builder() + .with_env_filter(filter.clone()) + .finish(); subscriber::set_global_default(s).expect(SETGLOBAL_FAIL); - info!("tracing initialised ({}).", lvl); + info!("tracing initialised."); match dotenv { DotenvStatus::LoadedFine => info!(".env loaded successfully."), DotenvStatus::NotFound => warn!(".env not found; skipping..."), @@ -33,19 +35,3 @@ enum DotenvStatus { NotFound, Error(Error), } - -trait StrToLevel { - fn try_from_str(value: &str) -> Level; -} -impl StrToLevel for Level { - fn try_from_str(value: &str) -> Level { - match value.to_lowercase().as_str() { - "error" => Level::ERROR, - "warn" => Level::WARN, - "info" => Level::INFO, - "debug" => Level::DEBUG, - "trace" => Level::TRACE, - _ => panic!("{value} is not a valid log level."), - } - } -}