From 531125def72c53700fdde171013d9603ea1b302f Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Fri, 25 Nov 2022 18:21:01 +0100 Subject: [PATCH] enable tracing based on `DEBUG` env --- oxide/Cargo.lock | 80 ++++++++++++++++++++++++++++++++++++ oxide/crates/core/Cargo.toml | 4 +- oxide/crates/core/src/lib.rs | 41 +++++++----------- 3 files changed, 97 insertions(+), 28 deletions(-) diff --git a/oxide/Cargo.lock b/oxide/Cargo.lock index ae3590294..f15b12ee3 100644 --- a/oxide/Cargo.lock +++ b/oxide/Cargo.lock @@ -416,6 +416,15 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata", +] + [[package]] name = "memchr" version = "2.5.0" @@ -486,6 +495,16 @@ dependencies = [ "libloading", ] +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + [[package]] name = "num-traits" version = "0.2.15" @@ -523,6 +542,12 @@ version = "6.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "pin-project-lite" version = "0.2.9" @@ -638,6 +663,9 @@ name = "regex-automata" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax", +] [[package]] name = "regex-syntax" @@ -704,6 +732,21 @@ dependencies = [ "serde", ] +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + [[package]] name = "strsim" version = "0.10.0" @@ -748,6 +791,7 @@ dependencies = [ "log", "rayon", "tracing", + "tracing-subscriber", ] [[package]] @@ -826,6 +870,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", ] [[package]] @@ -840,6 +914,12 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "version_check" version = "0.9.4" diff --git a/oxide/crates/core/Cargo.toml b/oxide/crates/core/Cargo.toml index 4e9160f91..ae895f34a 100644 --- a/oxide/crates/core/Cargo.toml +++ b/oxide/crates/core/Cargo.toml @@ -10,8 +10,8 @@ log = "0.4" rayon = "1.5.3" fxhash = "0.2.1" crossbeam = "0.8.2" -tracing = { version = "0.1.37", features = ["max_level_trace", "release_max_level_warn"] } -tracing-subscriber = "0.3.16" +tracing = { version = "0.1.37", features = [] } +tracing-subscriber = { version = "0.3.16", features = ["env-filter"] } [dev-dependencies] criterion = { version = "0.3", features = ['html_reports'] } diff --git a/oxide/crates/core/src/lib.rs b/oxide/crates/core/src/lib.rs index 559c1acb7..d190af3c2 100644 --- a/oxide/crates/core/src/lib.rs +++ b/oxide/crates/core/src/lib.rs @@ -1,7 +1,7 @@ use crate::parser::Extractor; use rayon::prelude::*; -use tracing::event; use std::path::PathBuf; +use tracing::event; pub mod candidate; pub mod glob; @@ -19,18 +19,25 @@ pub struct ChangedContent { } pub fn parse_candidate_strings_from_files(changed_content: Vec) -> Vec { - tracing_subscriber::fmt() - .with_max_level(tracing::Level::INFO) - .with_span_events(tracing_subscriber::fmt::format::FmtSpan::ACTIVE) - .compact() - .init(); + if matches!(std::env::var("DEBUG"), Ok(value) if value.eq("*") || value.eq("1") || value.eq("true") || value.contains("tailwind")) + { + tracing_subscriber::fmt() + .with_max_level(tracing::Level::INFO) + .with_span_events(tracing_subscriber::fmt::format::FmtSpan::ACTIVE) + .compact() + .init(); + } parse_all_blobs(read_all_files(changed_content)) } #[tracing::instrument(skip(changed_content))] fn read_all_files(changed_content: Vec) -> Vec> { - event!(tracing::Level::INFO, "Reading {:?} file(s)", changed_content.len()); + event!( + tracing::Level::INFO, + "Reading {:?} file(s)", + changed_content.len() + ); changed_content .into_par_iter() @@ -42,6 +49,7 @@ fn read_all_files(changed_content: Vec) -> Vec> { .collect() } +#[tracing::instrument(skip(blobs))] fn parse_all_blobs(blobs: Vec>) -> Vec { let input: Vec<_> = blobs.iter().map(|blob| &blob[..]).collect(); let input = &input[..]; @@ -62,22 +70,3 @@ fn parse_all_blobs(blobs: Vec>) -> Vec { }) .collect() } - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_parse_candidate_strings_from_files() { - let changed_content = vec![ChangedContent { - file: Some(PathBuf::from("benches/fixtures/template-000.html")), - content: None, - extension: "html".to_string(), - }]; - - let candidates = parse_candidate_strings_from_files(changed_content); - - assert_eq!(candidates.len(), 808); - assert_eq!(candidates[0], "md:h-72"); - } -}