From 44f3047780867f4c9d4d60b3ca023241a8c4c3dc Mon Sep 17 00:00:00 2001 From: Miles Murgaw Date: Wed, 27 Mar 2024 15:07:44 -0400 Subject: [PATCH] Revision: Change Default Logging In CLI (#2157) * revision: filter to warn logs * revision: change to use DIOXUS_LOG --- Cargo.lock | 42 +++++++++++++++++++++++++++++++++------- packages/cli/Cargo.toml | 3 ++- packages/cli/src/main.rs | 22 +++++++++++++++++++-- 3 files changed, 57 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bd330c744..6bee3882a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -897,7 +897,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" dependencies = [ "memchr", - "regex-automata", + "regex-automata 0.4.6", "serde", ] @@ -3789,8 +3789,8 @@ dependencies = [ "aho-corasick", "bstr 1.9.1", "log", - "regex-automata", - "regex-syntax", + "regex-automata 0.4.6", + "regex-syntax 0.8.2", ] [[package]] @@ -4619,7 +4619,7 @@ dependencies = [ "globset", "log", "memchr", - "regex-automata", + "regex-automata 0.4.6", "same-file", "walkdir", "winapi-util", @@ -5546,6 +5546,15 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + [[package]] name = "matches" version = "0.1.10" @@ -7135,8 +7144,17 @@ checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", - "regex-automata", - "regex-syntax", + "regex-automata 0.4.6", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", ] [[package]] @@ -7147,9 +7165,15 @@ checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-syntax 0.8.2", ] +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + [[package]] name = "regex-syntax" version = "0.8.2" @@ -9188,10 +9212,14 @@ version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ + "matchers", "nu-ansi-term", + "once_cell", + "regex", "sharded-slab", "smallvec", "thread_local", + "tracing", "tracing-core", "tracing-log", ] diff --git a/packages/cli/Cargo.toml b/packages/cli/Cargo.toml index 24d7a9837..13c305072 100644 --- a/packages/cli/Cargo.toml +++ b/packages/cli/Cargo.toml @@ -95,7 +95,8 @@ interprocess = { workspace = true } # interprocess-docfix = { version = "1.2.2" } ignore = "0.4.22" env_logger = "0.11.3" -tracing-subscriber = "0.3.18" + +tracing-subscriber = { version = "0.3.18", features = ["std", "env-filter"] } tracing = { workspace = true } # on maco, we need to specify the vendored feature on ssl when cross compiling diff --git a/packages/cli/src/main.rs b/packages/cli/src/main.rs index 47d290602..0187cc5f6 100644 --- a/packages/cli/src/main.rs +++ b/packages/cli/src/main.rs @@ -1,5 +1,7 @@ use dioxus_cli_config::DioxusConfig; -use std::path::PathBuf; +use std::{env, path::PathBuf}; +use tracing::level_filters::LevelFilter; +use tracing_subscriber::EnvFilter; use anyhow::Context; use clap::Parser; @@ -7,11 +9,27 @@ use dioxus_cli::*; use Commands::*; +const LOG_ENV: &str = "DIOXUS_LOG"; + #[tokio::main] async fn main() -> anyhow::Result<()> { let args = Cli::parse(); - tracing_subscriber::fmt::init(); + // If {LOG_ENV} is set, default to env, otherwise filter to cli + // and manganis warnings and errors from other crates + if env::var(LOG_ENV).is_ok() { + let filter = EnvFilter::from_env(LOG_ENV); + tracing_subscriber::fmt().with_env_filter(filter).init(); + } else { + let filter = EnvFilter::builder() + .with_default_directive(LevelFilter::ERROR.into()) + .from_env() + .unwrap() + .add_directive("dioxus_cli=warn".parse().unwrap()) + .add_directive("manganis-cli-support=warn".parse().unwrap()); + + tracing_subscriber::fmt().with_env_filter(filter).init(); + } match args.action { Translate(opts) => opts