From ecd577c9341ce169f92601a058857af0b0be2f29 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Wed, 20 Oct 2021 19:20:56 +0300 Subject: [PATCH] Simplify tracing declarations --- Cargo.lock | 23 ++++------------------- zenith_utils/Cargo.toml | 3 +-- zenith_utils/src/logging.rs | 36 +++++++++++------------------------- 3 files changed, 16 insertions(+), 46 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8f7967ad0c..8ac8d21556 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -934,9 +934,9 @@ dependencies = [ [[package]] name = "matchers" -version = "0.0.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ "regex-automata", ] @@ -2205,36 +2205,22 @@ dependencies = [ "tracing-core", ] -[[package]] -name = "tracing-serde" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb65ea441fbb84f9f6748fd496cf7f63ec9af5bca94dd86456978d055e8eb28b" -dependencies = [ - "serde", - "tracing-core", -] - [[package]] name = "tracing-subscriber" -version = "0.2.25" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +checksum = "80a4ddde70311d8da398062ecf6fc2c309337de6b0f77d6c27aff8d53f6fca52" dependencies = [ "ansi_term 0.12.1", - "chrono", "lazy_static", "matchers", "regex", - "serde", - "serde_json", "sharded-slab", "smallvec", "thread_local", "tracing", "tracing-core", "tracing-log", - "tracing-serde", ] [[package]] @@ -2602,7 +2588,6 @@ dependencies = [ "thiserror", "tokio", "tracing", - "tracing-log", "tracing-subscriber", "webpki", "workspace_hack", diff --git a/zenith_utils/Cargo.toml b/zenith_utils/Cargo.toml index 6571fae042..90810ff5df 100644 --- a/zenith_utils/Cargo.toml +++ b/zenith_utils/Cargo.toml @@ -19,8 +19,7 @@ serde_json = "1" thiserror = "1.0" tokio = "1.11" tracing = "0.1" -tracing-log = "0.1" -tracing-subscriber = "0.2" +tracing-subscriber = { version = "0.3", features = ["env-filter"] } zenith_metrics = { path = "../zenith_metrics" } workspace_hack = { path = "../workspace_hack" } diff --git a/zenith_utils/src/logging.rs b/zenith_utils/src/logging.rs index 53dbfc305d..1576a54c8e 100644 --- a/zenith_utils/src/logging.rs +++ b/zenith_utils/src/logging.rs @@ -5,11 +5,6 @@ use std::{ use anyhow::{Context, Result}; -use tracing::subscriber::set_global_default; -use tracing_log::LogTracer; -use tracing_subscriber::fmt; -use tracing_subscriber::{layer::SubscriberExt, EnvFilter, Registry}; - pub fn init(log_filename: impl AsRef, daemonize: bool) -> Result { // Don't open the same file for output multiple times; // the different fds could overwrite each other's output. @@ -23,34 +18,25 @@ pub fn init(log_filename: impl AsRef, daemonize: bool) -> Result { // We fall back to printing all spans at info-level or above if // the RUST_LOG environment variable is not set. - let env_filter = - EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new(default_filter_str)); + let env_filter = tracing_subscriber::EnvFilter::try_from_default_env() + .unwrap_or_else(|_| tracing_subscriber::EnvFilter::new(default_filter_str)); + + let base_logger = tracing_subscriber::fmt() + .with_env_filter(env_filter) + .with_target(false) // don't include event targets + .with_ansi(false); // don't use colors in log file; // we are cloning and returning log file in order to allow redirecting daemonized stdout and stderr to it // if we do not use daemonization (e.g. in docker) it is better to log to stdout directly // for example to be in line with docker log command which expects logs comimg from stdout - // - // TODO: perhaps use a more human-readable format when !daemonize if daemonize { let x = log_file.try_clone().unwrap(); - - let fmt_layer = fmt::layer() - .pretty() - .with_target(false) // don't include event targets - .with_ansi(false) // don't use colors in log file - .with_writer(move || x.try_clone().unwrap()); - let subscriber = Registry::default().with(env_filter).with(fmt_layer); - - set_global_default(subscriber).expect("Failed to set subscriber"); + base_logger + .with_writer(move || x.try_clone().unwrap()) + .init(); } else { - let fmt_layer = fmt::layer().with_target(false); // don't include event targets - let subscriber = Registry::default().with(env_filter).with(fmt_layer); - - set_global_default(subscriber).expect("Failed to set subscriber"); + base_logger.init(); } - // Redirect all `log`'s events to our subscriber - LogTracer::init().expect("Failed to set logger"); - Ok(log_file) }