diff options
author | Simon Hauser <simon.hauser@helsinki-systems.de> | 2024-06-06T13·44+0200 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2024-06-10T16·35+0000 |
commit | 825d498908e2f6c9fdca3225afefb0aa4b3cc747 (patch) | |
tree | 765e5412bf24ae41bb3d6f42791a229b68a88451 /tvix/cli | |
parent | 11a6ff77067a7b9eec3f1c15412d7143cb85a047 (diff) |
feat(tvix/tracing): introduce common tvix-tracing crate r/8242
Introduce a new common crate that contains tracing boilerplate which then can be used in the cli, tvix-store and tvix-build crates. It has otlp as an optional feature, which is currently only used by tvix-store. Change-Id: I41468ac4d9c65174515d721513b96fea463d6ed2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11758 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de> Autosubmit: Simon Hauser <simon.hauser@helsinki-systems.de>
Diffstat (limited to 'tvix/cli')
-rw-r--r-- | tvix/cli/Cargo.toml | 4 | ||||
-rw-r--r-- | tvix/cli/src/main.rs | 30 |
2 files changed, 9 insertions, 25 deletions
diff --git a/tvix/cli/Cargo.toml b/tvix/cli/Cargo.toml index d3c05172e456..d91da42864ad 100644 --- a/tvix/cli/Cargo.toml +++ b/tvix/cli/Cargo.toml @@ -14,6 +14,7 @@ tvix-castore = { path = "../castore" } tvix-store = { path = "../store", default-features = false, features = []} tvix-eval = { path = "../eval" } tvix-glue = { path = "../glue" } +tvix-tracing = { path = "../tracing" } bytes = "1.4.0" clap = { version = "4.0", features = ["derive", "env"] } dirs = "4.0.0" @@ -21,8 +22,7 @@ rustyline = "10.0.0" rnix = "0.11.0" thiserror = "1.0.38" tokio = "1.28.0" -tracing = { version = "0.1.37", features = ["max_level_trace", "release_max_level_info"] } -tracing-subscriber = "0.3.16" +tracing = "0.1.40" [dependencies.wu-manber] git = "https://github.com/tvlfyi/wu-manber.git" diff --git a/tvix/cli/src/main.rs b/tvix/cli/src/main.rs index 66ec5a99dba6..bb0b9b768b02 100644 --- a/tvix/cli/src/main.rs +++ b/tvix/cli/src/main.rs @@ -5,9 +5,6 @@ use repl::Repl; use std::rc::Rc; use std::{fs, path::PathBuf}; use tracing::Level; -use tracing_subscriber::fmt::writer::MakeWriterExt; -use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt}; -use tracing_subscriber::{EnvFilter, Layer}; use tvix_build::buildservice; use tvix_eval::builtins::impure_builtins; use tvix_eval::observer::{DisassemblingObserver, TracingObserver}; @@ -27,8 +24,12 @@ static GLOBAL: Jemalloc = Jemalloc; #[derive(Parser, Clone)] struct Args { - #[arg(long)] - log_level: Option<Level>, + /// A global log level to use when printing logs. + /// It's also possible to set `RUST_LOG` according to + /// `tracing_subscriber::filter::EnvFilter`, which will always have + /// priority. + #[arg(long, default_value_t=Level::INFO)] + log_level: Level, /// Path to a script to evaluate script: Option<PathBuf>, @@ -270,24 +271,7 @@ fn lint(code: &str, path: Option<PathBuf>, args: &Args) -> bool { fn main() { let args = Args::parse(); - // configure log settings - let level = args.log_level.unwrap_or(Level::INFO); - - let subscriber = tracing_subscriber::registry().with( - tracing_subscriber::fmt::Layer::new() - .with_writer(std::io::stderr.with_max_level(level)) - .compact() - .with_filter( - EnvFilter::builder() - .with_default_directive(level.into()) - .from_env() - .expect("invalid RUST_LOG"), - ), - ); - subscriber - .try_init() - .expect("unable to set up tracing subscriber"); - + tvix_tracing::init(args.log_level).expect("unable to set up tracing subscriber"); let tokio_runtime = tokio::runtime::Runtime::new().expect("failed to setup tokio runtime"); let io_handle = init_io_handle(&tokio_runtime, &args); |